Recent Posts
Recent Comments
Link
11-21 14:38
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

[SWT/JFace] Display 클래스, Shell 클래스, 메시지 박스 예제 본문

DEV&OPS/Java

[SWT/JFace] Display 클래스, Shell 클래스, 메시지 박스 예제

ALEPH.GEM 2024. 1. 16. 21:22

 

Display class

Display 클래스가 외관을 보여주는 역할을 하지는 않지만 GUI 자원을 관리하고 운영체제와 소통을 담당합니다.

코드에 있는 SWT/JFace 명령들을 운영체제에 호환되도록 바꾸어 전달하는 일을 합니다.

 

주요 메소드

  • Display() : 플랫폼 자원을 할당하고 Display 객체를 생성.
  • getCurrent() : 사용자 인터페이스 스레드를 반환.
  • readAndDispatch() : Display 객체가 이벤트를 해석해서 리스너로 넘겨 줌.
  • sleep() : Display 객체가 이벤트를 기다림.

 

Shell class

Shell 클래스의 인스턴스는 위젯, 이벤트들과 연동하며, 시각적인 부분을 구현합니다.

운영체제에 접근하기는 하지만 윈도우 열기, 활성화, 최대화, 윈도우 닫기를 추적할 때만 접근합니다.

모든 SWT/JFace application은 메인 Shell 객체(최상위 Shell) 위에 위젯을 올리지만, application에 다른 shell이 존재할 수도 있습니다.

이 shell 인스턴스는 여러 속성들이 있고 사용자들이 상태를 변경 할 수 있습니다.

Shell은 인자 값으로 display객체를 받습니다.

shell, 위젯들의 스타일 정보를 상수값(스타일 비트)을 설정 할 수 있습니다.

 

 

 

 

메시지 박스 예제

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

public class SWTMessageBox{
    public static void main(String[] args) {
        //디스플레이 객체 획득
        Display display = new Display();
        //shell 객체 획득
        Shell shell = new Shell(display);

        // MessageBox 생성: infomation아이콘, ok버튼
        // 위젯들은 shell의 하위 요소들이다.
        MessageBox messageBox = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);

        // MessageBox에 표시할 메시지 설정
        messageBox.setText("알림");	//제목
        messageBox.setMessage("이것은 SWT MessageBox 예제입니다.");	//내용

        // MessageBox를 표시하고 사용자의 응답을 기다림. 응답 값은 정수형.
        // shell의 open()메서드를 이용해서 창을 열 수 있다.
        int response = messageBox.open(); 

        // 사용자가 확인(OK) 버튼을 클릭한 경우
        if (response == SWT.OK) {
            System.out.println("사용자가 확인 버튼을 클릭했습니다.");
        }

        //로드 된 리소스 정리
        display.dispose();
    }
}

 

 

 

 

 

728x90