문자열을 원하는 구분자(delimiter)를 사용하여 분리하고 싶을 때

StringTokenizer 와 String 메소드 split() 를 사용할 수 있습니다.

 

같지만 다른 두 가지 방법에 대해서 알아보도록 하겠습니다.

(예제에서는 구분자로 콤마(,) 를 사용하였습니다.)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class StringDivideTest {
    public static void stringTokenizerTest(String str) {
        System.out.println("====== stringTokenizerTest() result ======");
        StringTokenizer tokenizer = new StringTokenizer(str, ",");
        for (int i = 0; tokenizer.hasMoreTokens(); i++) {
            System.out.println(i + "번째 : " + tokenizer.nextToken());
        }
    }
 
    public static void splitTest(String str) {
        System.out.println("====== splitTest() result ======");
        String split[] = str.split(",");
        for (int i = 0; i < split.lenght; i++) {
            System.out.println(i + "번째 : " + split[i]);
        }
    }
 
    public static void main(String[] args) {
        String str = "apple,banana,kiwi";
        stringTokenizerTest(str);
        System.out.println();
        splitTest(str);
    }
}
cs

 

 

(1) 일반적인 상황 (데이터+구분자+데이터

=> 동일하게 동작합니다.

String str = "apple,banana,kiwi";

  

<결과>

======= stringTokenizerTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi

 

======= splitTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi 

 

 

(2) 구분자 사이에 데이터가 없는 경우(데이터+구분자+구분자+데이터

=> split 만 공백의 데이터를 반환합니다.

String str = "apple,banana,,kiwi";

 

<결과>

======= stringTokenizerTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi

 

======= splitTest() result =======
0번째  : apple
1번째  : banana
2번째  :
3번째  : kiwi

 

 

(3) 문자열이 구분자로 끝나는 경우 (데이터+구분자)

=> 동일하게 마지막 데이터를 무시하는 방식으로 동작합니다.

마지막 데이터도 표현하고 싶은 경우 split 를 통해서(오버로딩된 다른 메소드) 가능합니다. 
String str = "apple,banana,kiwi,";

 

<결과>

======= stringTokenizerTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi

 

======= splitTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi

 

 

(4) 문자열이 구분자로 끝나는 경우 (데이터+구분자) - 마지막 데이터를 표현하고 싶을 경우

String str = "apple,banana,kiwi,";

String split[] = str.split(",", -1);

 

<결과>

======= stringTokenizerTest() result =======
0번째 : apple
1번째 : banana
2번째 : kiwi

 

======= splitTest() result =======
0번째  : apple
1번째  : banana
2번째  : kiwi
3번째  :

 

 

split 메소드는 인자로 regex(정규표현식) 사용하기 때문에

속도적인 측면에서는 StringTokenizer 가 더 성능을 좋다고 볼 수 있습니다.

하지만 예제와 같이 가변적인 요소가 많은 문자열이나 정확한 분리가 필요할 때에는 split 메소드를 사용하는 것이 유용합니다.

 

 

Posted by maze1008
,

요새는 가입 후 2년간 방치했던 블로그를 열심히 해보려고 노력 중입니다.

 

하지만 착실한 포스트에도 도무지 늘지 않는 방문자수!

 

관리자 메뉴에서 유입 경로를 확인해 보았더니 모두 다음 검색을 통해서만 오신 분들 뿐이었습니다.

 

우리나라에서 가장 많은 검색을 담당한다는 네이버를 통해서도

 

해외까지 포함하면 최고의 검색 사이트라는 구글을 통해서도

 

제 블로그를 찾아주신 분들이 하나도 없다니...

 

그러던 중에 네이버에서 검색이 되기 위해서는 블로그 검색 등록을 요청해야 한다는 사실을 알게 되었지요.

 

열심히 정보를 입력하고 next 버튼을 눌러서 네이버 고객센터로 전송했지만

 

다음날 받은 메일에는

 

"고객님께서 요청하신 블로그 피드에는 등록된 게시물이 없어 검색 반영이 어렵습니다."

 

 

제 블로그에는 무려 30여개의 글이 작성되어 있는데 왜 글이 없다는 걸까요?

 

 

뭐야? 뭐야! 를 외치며 링크를 클릭해 보았습니다.

 

http://maze1008.tistory.com/rss

 

 

진짜? 진짜! 글이 하나도 없었습니다.

 

네이버 고객센터에서는 진실만을 말한 것이었어요.

 

 

RSS FEED 에 게시물을 등록하기 위해서는 다음과 같은 작업이 필요합니다.

 

1. 관리자 메뉴로 들어갑니다.

 

2.  좌측 사이드 > 글 관리 > 글 설정을 클릭합니다.

 

 

공개 정책의 하위메뉴로 RSS 가 있는 것을 볼 수 있습니다.

 

 

 

공개글, 전체 공개를 선택

공개 갯수는 최대치인 30 ~ 50개 사이를 설정해 주시면 됩니다.

확인 버튼을 클릭합니다.

 

 

 

블로그 홈으로 돌아오셔서, 좌측 하단에 위치한  RSS FEED 버튼을 클릭합니다.

 

 

 

블로그에 위치한 모든 글들이 RSS 에서도 검색되는 것을 확인 할 수 있습니다.

(실제로 리스트에는 공개 갯수로 설정한 만큼의 글만 보여집니다.)

 

 

다시 네이버 고객센터에 블로그 검색 등록을 요청해 보아야 겠습니다. 도전!! 

네이버에 티스토리 블로그 등록하는 방법 (네이버 웹마스터도구 사용)

 

Posted by maze1008
,

티스토리에 가입한 지 어느새 2년이 흘렀습니다.

 

처음 가입하고자 했을 때는 초대장이 필요하다는 것이 매우 생소했었죠.

 

자주 사용하는 다음, 네이버, 구글 등 어느 곳에서도 (물론 대부분이 검색 or 카페) 가입을 위해서 초대장을 요구 하지는 않았으니까요!

 

 

초대장을 받기 위해 주변 지인들 중에서 블로그를 운영하는 사람을 찾아보았지만

 

불행히도 제 주변에는 블로그를 운영하는 사람이 없었습니다.

 

그래서 티스토리 홈페이지를 방문한 후 초대장을 나누어 주시는 분들께

 

블로그를 개설하고 싶은 이유를 댓글과 메일로 열심히 어필했습니다.

 

다행히 마음씨 좋은신 분 덕분에 티스토리 가입에 성공할 수 있었습니다.

 

 

 

 

제 주변에서도 일 년에 몇 번씩 티스토리 초대장을 찾고 있는 사람들을 보게 됩니다.

 

하지만 제가 이런저런 이유로 블로그를 열심히 운영하지 못해서

 

저에게는 배포할 수 있는 초대장이 없어 안타깝게도 도움을 드리지 못했었습니다.

 

그런 지인분들께 미안한 마음에 열심히 찾다보니 다른 길이 보였습니다.

 

바로바로 티스토리 앱 입니다.

 

 

 

 

티스토리를 스마트폰에서도 사용 할 수 있도록 안드로이드 / 아이폰 앱이 개발되었습니다.

 

티스토리 앱을 다운받아 앱에서 회원가입을 하면 자동으로 초대장을 1개 제공해 주기 때문에

 

바로 블로그 개설이 가능합니다.

 

 

 

더 자세한 내용은 아래 링크를 참고해 주시기 바랍니다.

 

안드로이드 :  http://notice.tistory.com/2189

 

아이폰 : http://notice.tistory.com/2194

 

 

혹시라도 예전의 저처럼 초대장을 찾아 헤매고 계시다면 아주 유용하겠죠.

 

이제 여러분의 티스토리 블로그를 시작해 보세요!!

 

 

Posted by maze1008
,

이클립스에서 Git 을 사용할 때 Private Key 를 설정하는 작업이 필요합니다.

아래와 같이 간단한 방법으로 Private Key 를 설정할 수 있습니다.

 

 

Window 메뉴 > Preferences 를 선택합니다.

 

 

 

좌측에서 General > Network Connections > SSH2 를 선택하고

우측에서 Add Private Key... 를 클릭하여 Private Key 를 등록합니다.

OK 버튼을 클릭합니다.

 

 

'IT > Eclipse' 카테고리의 다른 글

이클립스 글자크기 변경하기  (0) 2015.03.23
이클립스 단축키  (0) 2015.03.15
이클립스 테마 적용하기  (0) 2015.03.10
이클립스 다운로드 및 설치방법  (0) 2015.03.04
클래스 다이어그램 - ObjectAid UML Explorer  (1) 2015.02.15

Posted by maze1008
,

데이터를 모아서 저장하고 관리하는데 있어서 많은 자료형들이 유용하게 사용됩니다.

ArrayList, Map, Vector, Stack, Queue 등등!

 

각기 다른 장점과 단점을 가지고 있지만

요새 특히 많이 사용하고 있는 것은 HashMap 입니다.

 

key 와 value 의 1:1 한쌍으로 데이터를 저장 / 관리할 수 있고

key 를 통해 저장된 value 를 손쉽게 얻어 올 수 있는 매우 유용한 자료형입니다.

(key 의 중복은 허용되지 않습니다.)

 

key 기반의 데이터 저장 구조이기 때문에 자연스럽게 저장 순서는 의미를 갖지 않게 되어서

저장된 데이터를 출력해 보면 추가했던 순서와는 전혀 다른 형태의 모습으로 여기저기 흩어져 있는 것을 확인 할 수 있습니다.

 

그런데 아주 가끔 입력한 순서대로 저장이 필요한 순간이 있습니다.

마치 ArrayList 처럼 순서대로 데이터를 입력하고 싶은 것이죠.

그럴 때 사용하는 자료형이 바로 LinkedHashMap 입니다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
 
public class HashMapTest {
    public static void initData(Map<StringString> map) {
        map.put("key1""1");
        map.put("key2""2");
        map.put("key3""3");
        map.put("key4""4");
        map.put("key5""5");
        map.put("key6""6");
        map.put("key7""7");
        map.put("key8""8");
        map.put("key9""9");
        map.put("key10""10");
    }
    
    public static void printResult(Map<StringString> map) {
        Set<String> set = map.keySet();
        Iterator<String> iter = set.iterator();
        while (iter.hasNext()) {
            String key = ((String)iter.next());
            String value = map.get(key);
            System.out.println("key : " + key + ", value : " + value);
        }
    }
 
    public static void main(String[] args) {
        // HashMap
        System.out.println("====== HashMap Test ======");
        Map<StringString> hashMap = new HashMap<StringString>();
        initData(hashMap);
        printResult(hashMap);
        
        // LinkedHashMap
        System.out.println("====== LinkedHashMap Test ======");
        Map<String,String> linkedHashMap=new LinkedHashMap<StringString>();
        initData(linkedHashMap);
        printResult(linkedHashMap);
    }
}
cs

 

<출력>

====== HashMap Test ======
key : key4, value : 4
key : key3, value : 3
key : key6, value : 6
key : key5, value : 5
key : key2, value : 2
key : key1, value : 1
key : key10, value : 10
key : key8, value : 8
key : key7, value : 7
key : key9, value : 9
====== LinkedHashMap Test ======
key : key1, value : 1
key : key2, value : 2
key : key3, value : 3
key : key4, value : 4
key : key5, value : 5
key : key6, value : 6
key : key7, value : 7
key : key8, value : 8
key : key9, value : 9
key : key10, value : 10

 

출력 결과에서 처럼 HashMap 은 입력된 순서와 전혀 상관 없이 데이터가 흩어져 있는 반면에

LinkedHashMap 은 입력된 순서대로 차곡차곡 데이터가 쌓여 있는 것을 확인 할 수 있습니다.

 

언뜻 보기에는 ArrayList 를 사용하는 것과 차이가 없어 보일 수 있지만

LinkedHashMap 의 경우는 HashMap 의 장점을 그대로 가지고 있기 때문에

동일한 key 의 중복을 막아주고, 특정 key 의 value 를 찾고자 할 때 for 문을 돌며 전체 값을 검색할 필요가 없습니다.

 

또한 순서대로 입력되어 있기 때문에 전체의 값을 순서대로 operation 해야 할 때도 매우 유용합니다.

 

 


 

마지막으로 LinkedHashMap 에는 특별한 기능을 가진 removeEldestEntry() 메소드가 존재합니다.

 

protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {

return false; 

}

 

이 메소드는 put() 메소드가 호출될 때 불리게 되는데 마지막으로 입력된 순서를 기억하고

LinkedHashMap 에 입력된지 가장 오래된 데이터를 파라미터로(eldest) 전달받게 됩니다.

 

1
2
3
4
5
6
7
8
9
System.out.println("====== LinkedHashMap2 Test ======");
Map<StringString> linkedHashMap2=new LinkedHashMap<StringString>() {
    @Override
    protected boolean removeEldestEntry(Entry<StringString> arg0) {
        return size() == 6true : false;
    }
};
initData(linkedHashMap2);
printResult(linkedHashMap2);
cs

 

따라서 removeEldestEntry() 메소드를 오버라이드(override) 해서 다음과 같이 사용하면

6번째 데이터가 입력될 때, 입력된지 가장 오래된 데이터(1번째 데이터)가 삭제되고

linkedHashMap2 의 최대 입력 갯수는 5 가 되게 됩니다. (지정된 크기의 데이터만 입력 가능합니다.)

 

<출력>

====== LinkedHashMap2 Test ======
key : key6, value : 6
key : key7, value : 7
key : key8, value : 8
key : key9, value : 9
key : key10, value : 10

 

Posted by maze1008
,

블로그에 소스코드를 올리는 두 번째 방법을 소개합니다.

 

이번에는 SyntaxHighlighter 를 다운받아서 HTML/CSS 를 수정하는 방법을 이용해 보도록 하겠습니다.

 

 

1. 아래의 링크를 통해서 SyntaxHighlighter 페이지를 방문해서 다운로드 받습니다.

(현재 최신 버전은 3.0.83 입니다.)
http://alexgorbatchev.com/SyntaxHighlighter/download/

 

 

Click here to download 를 클릭합니다.

 

 

 

 저장 버튼을 클릭해서 원하는 위치에 파일을 다운로드 받습니다.

 

  

2. 다운로드 받은 zip 파일의 압축을 풉니다.

 

 

 

여러가지 폴더가 보여지는데요.

이중에서 사용할 폴더는 scripts 와 styles 입니다.

scripts 는 지원할 언어에 대한 파일들을, styles 은 적용할 스타일 정보에 대한 파일들을 포함하고 있습니다.

 

* 필수 파일

scripts : shCore.js

styles : shCore.css, shThemeDefault.css 

 

 

 

필수 파일(3가지) 를 포함해서 사용할 언어를 위해서 필요한 js 파일을 위의 화면을 참고하여 scripts 폴더에서 확인합니다.

 

 

3.  관리자 메뉴로 들어갑니다.

좌측 사이드 > 꾸미기 > HTML/CSS 편집을 클릭합니다.

 

 

 

파일업로드 탭에서 추가 버튼을 클릭하여

(압축을 푼 폴더에서) 위에서 선택했던 파일들을 모두 업로드 합니다.

 

 

4.  HTML/CSS 탭에서 skin.html 파일을 수정합니다.

Ctrl + F 를 눌러서 skin.html 영역에서 </head> 를 검색하여

</head>  위의 부분에 다음과 같이 입력합니다.

 

<!-- 소스코드 넣기 -->
<link href="./images/shCore.css" rel="stylesheet" type="text/css">
<link href="./images/shThemeDefault.css" rel="stylesheet" type="text/css">

 

 

 

Ctrl + F 를 눌러서 skin.html 영역에서 </body> 를 검색하여

</body>  위의 부분에 다음과 같이 입력합니다.

(압축을 푼 폴더에서) 위에서 선택했던 파일들을 모두 입력합니다.

 

<!-- 소스코드 넣기 -->
<script src="./images/shCore.js" type="text/javascript"></script>
<script src="./images/shBrushCpp.js" type="text/javascript"></script>
<script src="./images/shBrushJava.js" type="text/javascript"></script>
<script src="./images/shBrushJScript.js" type="text/javascript"></script>
<script src="./images/shBrushPlain.js" type="text/javascript"></script>
<script src="./images/shBrushSql.js" type="text/javascript"></script>
<script src="./images/shBrushXml.js" type="text/javascript"></script>
<script type="text/javascript">
    SyntaxHighlighter.all();
</script>

 

 

 

소스코드.txt

(포스트는 복사가 금지되어 있으므로, 소스코드를 다운받아서 사용해주세요)

 

 

5. 글쓰기 에디터에서 좌측에 HTML 항목을 체크한 후에, 본문에서 다음과 같이 사용합니다.

(아래의 java 는 원하는 언어로 변경하시면 됩니다.)

 

<pre class=brush:java>

소스코드

</pre>

 

 

 

 

6. 이제 작성된 글에서 스타일이 적용된 형태의 소스코드를 확인하실 수 있습니다.

 

 

 

복잡한 듯 보이지만  1 ~ 4번은 한번만 수행해 주시면 되는 작업입니다.

지난번에 포스팅한 color scripter 와 함께 유용하게 사용하시길 바랍니다.

블로그에 소스코드 올리기 - Color Scripter

 

 

 

Posted by maze1008
,

블로그에 소스코드를 올릴 때, 

평소 프로그래밍 하던 것처럼 가독성이 좋은 형태로 보여 드리고 싶을 때가 많았습니다.

 

그래서 오늘은 웹에서 간편하게 사용할 수 있는 Color Scripter 를 소개해 드리려고 합니다.

 

아래의 링크를 통해서 Color Scripter 페이지를 방문합니다.

http://prev.kr/apps/ColorScripter

 

 

Color Scripter 는 웹 버전과 PC 버전의 2가지 형태로 제공됩니다.

PC 버전을 클릭해 보면 다운로드해서 사용할 수 있도록 지원되고 있는데요.

 

 

 

PC 버전에서 더 안정적이고 빠른 기능을 이용할 수 있다고 합니다.

저는 웹 버전에 충분히 만족하고 있어서 다운로드 과정은 생략하겠습니다.

 

 

 

다시 메인 화면으로 돌아오면 4가지 형태의 설정 기능이 존재합니다.

언어 버튼을 클릭해서 사용할 언어를 선택합니다. (저는 Java 를 선택했습니다.)

 

 

 

스타일패키지 버튼을 클릭하면 선택한 언어에 적합한 스타일들이(일종의 테마라고 할까요?) 보여집니다.

원하는 테마를 선택합니다. (저는 핑크 레몬에이드를 선택했습니다.) 

 

 

 

두 가지 기본 설정만으로도 충분히 사용가능하지만

세부설정 버튼을 클릭하면 글꼴, 공백/가로/세로 크기 등에 대한 부가적인 설정도 변경할 수 있습니다.

 

 

이제 소스코드를 입력해 보겠습니다.

 

 

역시 처음은 "Hello world!" 가  가장 적합하겠죠?

소스코드가 스타일패키지에서 선택한 형태대로 적용되어 나타나고 있습니다.

 

우측 아래에 위치한 클립보드에 복사 버튼을 클릭합니다.

 

 

 

복사한 소스코드를 블로그 포스트에 추가하기 위해서 붙여넣기를 수행합니다.

 

이제 눈에 쏙쏙 들어오는 소스코드가 완성되었습니다!

Color Scripter 를 다시 방문하면 설정 상태가(글꼴, 색상 등 변경한 내용) 초기화 되니 이점 주의해 주세요.

 

 

소스코드를 올리는 또 다른 방법입니다. 

블로그에 소스코드 올리기 - SyntaxHighlighter

 

 

Posted by maze1008
,

몇 시간씩 열심히 공들여 작성한 포스팅을

 

다른 사람이 허락도 없이 도용한다면 화가 나겠죠?

 

그래서 마우스 드래그 또는 우클릭(복사)을 금지하는 방법을 소개해 드리려고 합니다.

 

 

첫 번째 방법 : 플러그인 설정하기

 

1. 관리자 메뉴로 들어갑니다.

 

2.  좌측 사이드 > 플러그인 > 플러그인 설정을 클릭합니다.

 

 

 

3.  탭 메뉴 : 스팸, 불펌방지를 클릭합니다.

하위 리스트에 마우스 오른쪽 클릭 방지 > 확인 버튼을 클릭합니다.

 

 

 

4.  리스트의 좌측에 체크 표시가 되어 있는 것을 확인 할 수 있습니다.

 

 

 

 

두 번째 방법 : HTML/CSS 수정하기

 

1. 관리자 메뉴로 들어갑니다.

 

2.  좌측 사이드 > 꾸미기 > HTML/CSS 편집을 클릭합니다.

 

 

3.  Ctrl + F 를 눌러서 skin.html 영역에서 </head> 를 검색합니다.

 

4. </head>  위의 부분에 다음과 같이 입력합니다.

 

<!-- 불펌방지 코드 시작 -->
<script type="text/javascript">
var omitformtags=["input", "textarea", "select"]
omitformtags=omitformtags.join("|")
function disableselect(e){
if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
return false
}
function reEnable(){
return true
}
if (typeof document.onselectstart!="undefined")
document.onselectstart=new Function ("return false")
else{
document.onmousedown=disableselect
document.onmouseup=reEnable
}
</script>
<!-- 불펌방지 코드 종료 -->

 

 

5.  Ctrl + F 를 눌러서 skin.html 영역에서 <body> 를 검색합니다.

 

6. <body> 를 다음과 같이 수정합니다.

 

<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">

 

  

 

소스코드.txt

(포스트는 복사가 금지되어 있으므로, 소스코드를 다운받아서 사용해주세요)

 

 

7. 저장 버튼을 클릭합니다.

 

 

이렇게 설정해 놓으면 블로그 주인 말고는 마우스 드래그 또는 우클릭을 할 수 없습니다.

(HTML/CSS 를 수정하시면 블로그 주인의 마우스 드래그 또는 우클릭도 금지되니 참고하시기 바랍니다.)

 

 

Posted by maze1008
,

티스토리의 좌측 or 우측 사이드에 위치하고 있는 카테고리

 

어떤 포스팅을 할지 이리저리 생각하고 만들었는데

 

하위 카테고리를 보고 싶으면 일일이 손으로 클릭해야 해서 불편합니다.

 

매번 블로그를 볼때마다 클릭을 해야 한다면 불편함은 몇 만배쯤 증가 할것 같습니다.

 

 

 

 

 제가 원하는 건 아래처럼 자동으로 펼쳐져 있는 카테고리 입니다.

 

 그럼 이제부터 수정하는 방법을 설명해 드리도록 하겠습니다.

 

 

 

 

 

티스토리 카테고리 펼치기 방법

 

 

1. 관리자 메뉴로 들어갑니다.

 

2.  좌측 사이드 > 꾸미기 > HTML/CSS 편집을 클릭합니다.

 

 

 

 

3.  Ctrl + F 를 눌러서 skin.html 영역에서 ##_category_## 를 검색합니다.

 

4. ##_category_##  아래 부분에 다음과 같이 입력합니다.

 

<!-- 카테고리펼치기 -->
<script language="JavaScript">try{expandTree();}catch(e){}</script>

 

 

 

 

 

소스코드.txt

(포스트는 복사가 금지되어 있으므로, 소스코드를 다운받아서 사용해주세요)

 

 

5. 저장 버튼을 클릭합니다.

 

이제 블로그 메인 화면으로 돌아가시면 펼쳐진 카테고리를 확인하실 수 있습니다.

 

 

 

Posted by maze1008
,

SWT 를 사용하여 Progress Dialog 를 만들었는데

우연히 ESC 키를 눌렀더니 Dialog 가 사라져 버리는 현상을 발견하게 되었습니다.

 

Progress Dialog 는 다른 Dialog 와 다르게 ESC 키를 눌러도 닫히지 않아야 할 것 같아서

ESC 키 이벤트에 대한 예외처리를 해 보았습니다. 

 

1
2
3
4
5
6
7
8
shell.addListener(SWT.Traverse, new Listener() {
    public void handleEvent(Event e) {
        if (e.detail == SWT.TRAVERSE_ESCAPE) {
            e.doit = false;
        }
    }
});
shell.open();
cs

'IT > SWT' 카테고리의 다른 글

VerifyListener 로 숫자만 입력받기  (0) 2015.04.17

Posted by maze1008
,