[자바] String으로 된 수식 계산하기 : 옛날에 스택 배울때 힘들게 스택에 넣고빼고 수식을 파싱해가면서 했는데 자바 1.6이상에서는 그냥 Javascript 엔진을 이용하면 된다. (자바스크립트의 eval 함수와 같은 기능의 함수가 있다) import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; public class Test { public static void main(String[] args) throws Exception{ ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript");..
[자바] 랜덤 숫자 생성하기 자바에서는 기본적으로 랜덤 숫자를 생성하는 2가지 방법이 있다.double Math.random()java.util.Random class : 그냥 간단하게 랜덤 숫자를 만들때에는 위의 Math.random()을 사용하면 좋지만, 함수 정의를 보면 알겠지만 synchronized를 이용한다. 멀티쓰레드 프로그램을 이용한다면 Math.random()을 자주 이용한다면 성능에 영향을 미칠수 밖에 없을 것이다.: Math.random()은 0 ~ 1 사이의 double을 랜덤으로 생성한다. 범위에 맞게 수정해서 사용하면 된다.double java.lang.Math.random() public static synchronized double random ()Since: API Lev..
자바로 GUI를 만들때 로그창을 JTextArea로 만들려면1, JTextArea가 스크롤 가능하게하고2. 로그가 발생하면 JTextArea 뒤에 내용을 붙이고 스크롤을 맨 아래로 내리면 된다. 1. JTextArea에 스크롤 넣기: 자바 JTextArea에 스크롤을 넣는 방법은, JScrollPane안에 JTextArea를 넣으면 된다.JTextArea txtLog = new JTextArea();JScrollPane scrollPane = new JScrollPane(txtLog);contentPane.add(scrollPane); * 주의 : JTextArea.setPreferredSize를 설정하면 스크롤바가 생기지 않는다. 2. JTextArea에 내용 붙여넣기 + 맨 아래로 스크롤하기 : JT..
빈 공백의 Border를 설정함으로써 내부 공백을 띄울 수 있다. JPanel pane = new JPanel();pane.setBorder(BorderFactory.createEmptyBorder(10 , 10 , 10 , 10); //상하좌우 10씩 띄우기 Border javax.swing.BorderFactory.createEmptyBorder(int top, int left, int bottom, int right) createEmptyBorderpublic static Border createEmptyBorder(int top, int left, int bottom, int right) Creates an empty border that takes up space but which does no..
1. GWT와 GAE를 연동시킨다. [GWT / GAE] Google Web Toolkit 와 Google App Engine 연동하기, 구글 서버에 올리기* 위의 페이지의 5번에서 transactions-optional을 설정했는지 확인한다. 다른 이름도 가능하지만 아래의 2번과 이름이 같아야한다. 2. PersistenceManagerFactory 객체를 만든다 - 아래와 같은 간단한 인터페이스를 만들어두면 좋다. public final class PMF { private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); private PMF..
JDO를 사용하기 위해서는 일단 JDO에서 사용하는 PersistentCapable한 객체를 만들어야한다. 다음 단계들을 거치면 만들수 있다. 1. 클래스 위에 @PersistenceCapable 을 설정 @PersistenceCapable public class User{ //.... } 2. 저장하고자하는 각 변수 위에 @Persistent 을 설정 @PersistenceCapable public class User{ @Persistent private String name; //setter/getter 생략 } * Persistent가 될수 있는 변수의 종류는 다음과 같으니 고려해가면서 JDO를 디자인하자. Datastore가 지원하는 기본 데이터형 @PersistenceCapable 을 설정한 객..
[자바] InputStream을 String으로 변환하기 private static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOExceptio..
[자바] String을 URL 인코딩하기 URL 뒤에 데이터를 덧붙이고자 할때 스트링을 URL에 맞게 인코딩을 해야하는데 아래와 같이 하면 된다. String encodeResult = URLEncoder.encode(String encodingString, String charsetName); 그냥 URLEncoder.encode(String s); 는 deprecated 되었으니까 사용하지 말고 위의 함수를 사용하자. charsetName에는 "UTF-8"과 같은 캐릭터 인코딩 셋을 넣으면 된다. 반대로 디코딩하는 것은 아래와 같이 하면 된다. String decodeResult = URLDecoder.decode(String decodingString, String charsetName); 끝.
이번에는 GWT와 GAE를 연동시키면서 RPC로 구글 서버에 있는 함수에 접근하는 방법을 알아보자. 1. GWT와 GAE를 연동시켜놓기 [GWT / GAE] Google Web Toolkit 와 Google App Engine 연동하기, 구글 서버에 올리기 2. 주고받을 유저 클래스를 만든다. * Serializable을 상속받아야한다. public class WGLM_User implements java.io.Serializable{ /** * */ private static final long serialVersionUID = -2003200417167457992L; public static final ProvidesKey KEY_PROVIDER = new ProvidesKey() { @Overrid..
1. 구글 앱 엔진 계정을 만든다. https://appengine.google.com/ 2. 구글 앱 엔진/구글 웹 툴킷을 다운 받아서 설치한다. http://code.google.com/appengine/docs/java/tools/eclipse.html 3. 이클립스에서 New > Web Application Project를 선택 (구글 아이콘 모양) 4. 프로젝트/war/WEB-INF/appengine-web.xml 파일 수정 unikys 1 5. 프로젝트/src/META-INF/jdoconfig.xml안에 transactions-optional 이 설정되었는지 본다. (JDO requirement) 6. 테스트로 실행, Run as > Web Application (구글 아이콘), 브라우저에 G..
// 자바에서 타이머를 설정하는 예제. public class TimerExample { public static void main(String[] args) { Timer timer1 = new Timer(); Timer timer2 = new Timer(); long period1 = 5 * 1000; // 5 seconds long period2 = 3 * 1000; // 3 seconds timer1.schedule(new Task("test1") , 0 , period1); timer2.schedule(new Task("test2") , 0 , period2); } } //////////// 아래는 TimerTask를 확장하는 Task 클래스 public class Task extends Tim..
0. 환경 : 이클립스+JAVA 6을 이용해서 코딩한다. - 지금 이 GUI 인터페이스를 만드는 목적은 지속적으로 이벤트(메세지)를 발생시키는 프로그램을 만들기 위한 기본 인터페이스를 구축하기 위함이다. - 함수 설명 안에 있는 링크들은 작동하지 않는다. 1. 시작 프로젝트를 만든다 기본 gui로 사용할 클래스를 만든다. JFrame을 상속받아야한다. class EventFireGui extends JFrame import javax.swing.JFrame; public class EventFireGui extends JFrame { } 실행할 static main을 포함할 클래스를 만든다. (EventFireGui를 써도 된다) public class EventFireStarter { public st..
java2word로 텍스트 + 이미지 삽입을 쉽게할수 있는지 알아보자. 사이트: http://code.google.com/p/java2word/ 문서 : http://java2word.blogspot.com/p/documentation.html 다운로드 : http://code.google.com/p/java2word/downloads/list 예제 : http://java2word.blogspot.com/p/all-in-one-example.html * 사용하기 편하고 알기도 쉽다. * 예제 페이지에 사용가능한 모든 간단한 예들이 있다. * 스타일을 설정하는게 아주 쉽다. * 이미지를 만드는 예 IDocument myDoc = new Document2004(); // myDoc.setPageOrient..
* 자바로 MS 워드 문서를 동적으로 만들어서 쓸수 있도록 하려고 하는것이 목표. a. 일단 검색을 해보기. 네이버에서 검색하면 그냥 라이브러리 소개만 몇줄있을 뿐이고, 구글에서 찾으니.. http://stackoverflow.com/questions/203174/whats-a-good-java-api-for-creating-word-documents 이런 여러 가지 라이브러리들이 정리되어 괜찮은 질문글이 있다. 여기 나온 라이브러리들을 살펴보자. 1. OpenOffice.org's Universal Network Objects (UNO) http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Gui..
[자바]BufferedImage 에서 ByteArrayInputStream 로 변환하기 BufferedImage img; ByteArrayOutputStream byos = new ByteArrayOutputStream(); try{ ImageIO.write(img , "jpg" , byos); }catch(Exception e){e.printStackTrace(); }finally{ byos.close(); } ByteArrayInputStream byis = new ByteArrayInputStream(byos.toByteArray()); 끝.
[자바] ODF에서 이미지 삽입하기 0. 이전글과 세팅은 같다 [JAVA] Open Document Format (ODF) 파일 생성하기, ODFDOM 라이브러리 1. 새로 만든 OdfTextDocument를 아래와 같이 코딩한다. OdfTextDocument doc = OdfTextDocument.newTextDocument(); OdfTextParagraph para = (OdfTextParagraph)doc.getContentRoot().newTextPElement(); OdfDrawFrame frame = (OdfDrawFrame)para.newDrawFrameElement(); OdfDrawImage img = (OdfDrawImage)frame.newDrawImageElement(); //각자..
[자바] 프로그램상으로 화면캡쳐하기. GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); DisplayMode mode = gs[0].getDisplayMode(); Rectangle bounds = new Rectangle(0, 0, mode.getWidth(), mode.getHeight()); BufferedImage desktop = new BufferedImage(mode.getWidth(), mode.getHeight(), BufferedImage.TYPE_INT_RGB); try { desktop = new Robot(gs[0])..
jOpenDocument는 비어있는 문서를 만드는데 약간 어려움이 있었지만 ODFDOM는 비어있는 문서도 쉽게 생성이 가능하다. 이틀립스 환경에서 진행. 0. odfdom 라이브러리 다운 받기 http://odftoolkit.org/projects/odfdom/pages/Home 여기가서 다운 받기 (jar, binary) 1. 이클립스에 빌드패스 추가하기. Project > Properties > Java build path > Libraries > Add Jars or Add external Jars > 다운 받은 jar 파일 선택 2. 예제대로 따라하기. // Create a text document from a standard template (empty documents within the JA..
자바의 JFrame과 Processing의 PApplet에서 Open document 파일을 생성하는 것을 하려고 하는데 이제부터 하나씩 알아가면서 정리해보려고 합니다. 환경은 Mac, JAVA 6 그리고 이클립스를 기본으로 개발합니다. 0. Open Document Format(ODF)란? * 파일 생성하는 것을 살펴보기 전에 ODF가 무엇인지 살펴보면, ODF는 XML을 기반으로 한 파일 포맷으로 아래의 문서 형식을 지원한다. 괄호 안은 각 파일의 확장자이다. 스프레드 시트 (.ods) 차트, 데이터베이스 (.odb) 프레젠테이션 (.odp) 워드 (.odt) * 보시다시피 MS office에서 사용되는 엑셀, 엑세스, 파워포인트, 워드의 양식을 가지고 있다. ODF는 OASIS(Organizatio..
[자바] 배열을 ArrayList나 Vector로 바꾸는 방법 It's quite simple. Use the static function of Arrays class. int[] elements = {1,2,3,4}; Vector myVector = new Vector(Arrays.asList(elements)); Reference : http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html static List asList(T... a) Returns a fixed-size list backed by the specified array.
- Total
- Today
- Yesterday
- 자바스크립트
- gre
- java
- GX-10
- lecture
- php
- gae
- 서울
- K100D
- mini project
- HTML5 튜토리얼
- 강좌
- Javascript
- HTML5
- 안드로이드
- google app engine
- 샷
- TIP
- 삼식이
- 속깊은 자바스크립트 강좌
- Python
- Writing
- ny-school
- 사진
- 안드로이드 앱 개발 기초
- Android
- 뽐뿌
- 탐론 17-50
- 팁
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |