Please Enable JavaScript!
Gon[ Enable JavaScript ]

프로그램 종료시점에서 처리를 해주고싶을때

자바(JAVA)
반응형

dispose() 를 날려서 프로그램을 종료하고 싶을때 Try 로 보낼것인지 아니면 완전히 종료할것인지에
대한 선택권을 사용자에게 주고 싶은 목적에 종료시점에서 분기를 하려고한다.
그럴려면 종료시점의 함수로 가서 처리를 해주면되는데 그것을 설정하는 방법에 대해 기술한다.

인터페이스를 상속받게 되면 모든 클래스를 구현해야되지만 어댑터를 사용하게 되면 그 함수만
사용가능하게 된다. 나는 close 될때 일어나는 이벤트만 사용할것이기 때문이다.
그 기능을 해주는게 ShellAdapter 이다. 
이기능은  main 의  NewSWTApp inst = new NewSWTApp(shell, SWT.NULL); 클래스 안에
구현을 해놓았다.

// Main Shell 각종이벤트 관리
getShell().addShellListener(new ShellAdapter(){
    // 화면을 닫을건지에 대한 결정
    public void shellClosed(ShellEvent e){
       String title = "데몬 종료";
       String message = "데몬을 종료하시겠습니까?";
       int style = SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION;
       MessageBox dialog = new MessageBox(getShell(), style);
       dialog.setText(title);
       dialog.setMessage(message);
       int flag = dialog.open();
       if (flag == SWT.OK){
           e.doit = true;
       }else{
           e.doit = false;               // 종료를 멈춘다.
           getShell().setVisible(false); // 화면을 안보이게 한다
     
          // 트레이 처리
     
       }
   }
});


반응형
Posted by 녹두장군1
,