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
,

C 언어에서 출력을 담당하는 printf() 함수를 사용해 보신적이 있으신가요?

 

자바(Java)에서도 동일한 기능을 제공하는 메소드들이 존재합니다.

 

String 클래스의 format() 메소드 : String.format()

PrintWriter 클래스와 PrintStream 클래스의 printf() 메소드 : System.out.printf()

 

첫 번째 매개변수가 포맷을 포함한 문자열이면(포맷 문자열, format string), 나머지 매개변수(아규먼트, argument)의 수나 타입에 제한없이 원하는 형태의 문자열을 생성 및 출력합니다.

 

 

 

 

 

래서 이번에는 원하는 포맷 문자열(format string) 구성하는 방법에 대해서 알아보도록 하겠습니다.

 

포맷 문자열(format string)에서 %d 로 표현되는 부분은 포맷 명세자(format specifier) 라고 불리며 다음으로 입력받은 아규먼트(argument)들에 의해서 치환됩니다.

 

위의 예제에서 보면 %d 가 각각 순서대로 10, 20, 30으로 치환되어 "10 + 20 = 30 입니다." 라는 값을 출력합니다. 이처럼 포맷 명세자(format specifier)를 어떠한 형태로 구성하는 지에 따라 문자열의 결과값이 다르게 나타나게 됩니다.

 

%[인자순서$][플래그][너비][정밀도]데이터타입

 

포맷 명세자(format specifier) 는 다음과 같이 % 키워드로 시작됩니다.

 

 

1. 데이터타입

 

마지막에 위치한 데이터타입은 출력하고자 하는 데이터 구분에 따라 다른 형태로 쓰여집니다.

일반적으로 정수 %d, 실수 %f, 문자열 %s, 불리언 %b 가 이용되고 있으며 상세한 설정을 위해서는 표를 참고하시기 바랍니다.

(위의 예제에서는 정수 10 을 표현하기 위해서 %d 를 사용했습니다.

 

 

 

2. 인자순서$

 

인자 순서는 아규먼트(argument)의 치환 순서를 지정하는 것입니다.

1$ 는 첫 번째, 2$는 두 번째, 3$ 는 세 번째 아규먼트(argument) 를 의미합니다.

 

예를 들어  System.out.printf(“%2$d + %1$d %3$d 입니다.”, 10, 20, 30);  입력했다면

%2$d 에는 두 번째 아규먼트 20, %1$d 에는 첫 번째 아규먼트인 10, %3$d 에는 세 번째 아규먼트인 30 이 치환되어 "20 + 10 = 30 입니다." 라는 결과값이 나타날 것입니다. 

 

 

3. 플래그

 

플래그는 부가적인 정보를 표시하기 위해 사용됩니다.

데이터를 왼쪽으로 정렬한다던가(기본으로 오른쪽 정렬), 금액을 표현할 때와 같이 일정 자리수마다 구분문자를 표시하는 등의 옵션을 설정하고 싶을 때 이용할 수 있습니다.

 

예를 들어 System.out.printf(“%d + %d %+d 입니다.”, 10, 20, 30);  입력했다면

"20 + 10 = +30 입니다." 라는 결과값이 나타날 것입니다. 

 

 

 

 

4. 너비와 정밀도

 

너비는 데이터를 표현할 때 얼마 정도의 공간을 차지할 것인지를 지정하는 것이고

정밀도는 소수점 아래의 값을 몇 자리까지 표현할 것인지를 나타냅니다. (정밀도는 '.숫자' 형태로 표시합니다.)

 

예를 들어 %5d 는 5개의 문자를 표시할 만큼의 공간이 확보하게 되고 

%5.2f 는 5개의 문자를 표시할 만큼의 공간을 확보하고 그 중에서 2자리는 소수점 이하의 값을 표현하는데 사용됩니다.

 

System.out.printf(“파이=%5.2f”, Math.PI);  입력했다면 "파이=3.14" 라는 결과값이 나타날 것입니다.

(5자리를 표시할 수 있는 공간을 확보했지만 아규먼트(argument) 의 정수 값이 3 이므로 남은 2자리는 사용하지 않게됩니다.)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
 
public class FormatTest {
    public static void main(String[] args) {    
        System.out.printf("%d + %d = %d 입니다. %n"102030);
        System.out.printf("%2$s의 위도는 %1$6.4f 입니다. %n"37.5306"서울");
        System.out.printf("%+d %n"10);
        System.out.printf("%+d %n", -10);
        System.out.printf("가격:%,d원 %n"10000000);
        
        Calendar now = new GregorianCalendar();
        System.out.printf("%1$tY/%1$tm/%1$td %1$tH:%1$tM:%1$tS %n", now);
        System.out.printf("%1$tY년%1$tm월%1$td일 %1$tp %1$tH시%1$tM분%1$tS초 %n", now);
        System.out.printf(Locale.US, "%tc %n", now);    
    }
}
cs

 

<결과>

10 + 20 = 30 입니다.
서울의 위도는 37.5306 입니다.
+10
-10
가격:10,000,000원
2015/02/19 18:15:37
2015년02월19일 오후 18시15분37초
Thu Feb 19 18:15:37 KST 2015

 

마지막으로 설명드린 부분들을 포함한 예제입니다.

 

하나씩 천천히 살펴보시면 어렵지 않게 원하는 포맷 문자열(format string)을 작성하실 수 있으실 겁니다.

 

(예제에서는 System.out.printf() 메소드만 사용했지만 String.format() 메소드도 동일한 방법으로 이용할 수 있습니다. 다만 String.format() 메소드는 결과값으로 포맷팅된 문자열을 반환합니다.)

 

 

 

Posted by maze1008
,

StartUML 은 다양한 UML 다이어그램를 작성하기에 적합한 무료 도구입니다.

 

다운로드와 설치가 매우 간단하고  클래스 다이어그램, 시퀀스 다이어그램, 유즈케이스 다이어그램 등 원하는 형태의 UML 다이어그램을 쉽게 작성할 수 있습니다.

 

지금부터 StartUML 다운로드 및 설치 방법에 대해 알아보도록 하겠습니다.

 

 

아래의 링크를 클릭해 주세요.

http://sourceforge.net/projects/staruml/

 

 

Download 를 클릭합니다.

 

 

 

브라우저 아래쪽으로 실행 or 저장을 묻는 화면이 나타납니다.

실행 버튼을 클릭합니다.

 

 

 

Next 버튼을 클릭합니다.

 

 

라이센스를 확인하는 부분입니다.

I accept the agreement 체크 > Next 버튼을 클릭합니다.

 

 

 

설치되는 경로를 확인하고 Next 버튼을 클릭합니다.

 

 

 

설치 폴더를 확인하고 Next 버튼을 클릭합니다.

 

 

 

바탕화면에 실행 icon 을 생성할지 묻는 부분입니다.

Next 버튼을 클릭합니다.

 

 

 

설정한 정보들을 다시한번 확인한 후 Install 버튼을 클릭합니다.

 

 

 

설치가 완료되었습니다.

Finish 버튼을 클릭하면 StarUML 이 자동으로 실행됩니다.

 

 

 

OK 버튼을 클릭합니다.

 

 

 

우측 상단의 Diagram Explorer 에서 원하는 다이얼그램 종류를 클릭하면 하위 메뉴로 Main 이 나타납니다.

Main 을 더블클릭하면 선택한 다이어그램에서 사용할 요소들이 좌측에 리스팅 됩니다.

(저는 Class Diagrams > Main 을 더블클릭 했더니, 좌측에 Package, Class, Interface 등의 요소들이 리스팅 되어 나타났습니다.)

 

이제 다이어그램에 표현하고 싶은 항목들을 좌측 메뉴에서 선택하여 다이어그램을 작성하시면 됩니다!!

상세한 사용법은 아래 링크를 참고하시기 바랍니다.

 

 

* StarUML 5.0 사용자 가이드
http://staruml.sourceforge.net/docs/user-guide(ko)/toc.html

 

 

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

CMD (명령 프롬프트) 명령어 모음  (3) 2015.03.22
Beyond Compare - 폴더, 파일 비교하기  (0) 2015.03.21
CSV 파일 변환  (0) 2015.03.12
맥 어드레스(mac 주소) 확인  (0) 2015.03.04
FreeProxy - 윈도우 프록시 설정하기  (0) 2015.03.01

Posted by maze1008
,