Tips > ApplicationWindowを閉じる前に警告を出すには?

 

ApplicationWindowを閉じる前に警告を出すには?

JFaceのApplicationWindowをクローズボックスで閉じるとき、警告ダイアログを表示するには、canHandleShellCloseEventメソッドをオーバーライドします。終了可能であればtrueを返し、終了しない場合はfalseを返します。

public class ... extends ApplicationWindow{
   ...
   protected boolean canHandleShellCloseEvent(){
      MessageBox box = new MessageBox(getShell(), SWT.CANCEL | ...);
      ...
      int ret = box.open();
      if (ret == SWT.CANCEL){
         //終了しない場合
         return false;
      }
      //終了する場合
      return true;
   }
}

サンプルプログラム

ApplicationWindowのクローズボックスを押すと警告ダイアログが表示されます。

ソースコード (AppWinClose.java)

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;

public class AppWinClose extends ApplicationWindow {

        public AppWinClose() {
                super(null);
        }
        
        public static void main(String[] args) {
                ApplicationWindow w = new AppWinClose();
                w.setBlockOnOpen(true);
                w.open();
                Display.getCurrent().dispose();
        }

        protected Control createContents(Composite parent) {
                getShell().setText("AppWinClose");
                Composite container = new Composite(parent, SWT.NONE);
                return container;
        }

        protected boolean canHandleShellCloseEvent() {
                MessageBox msg =
                        new MessageBox(getShell(), SWT.OK | 
                                                   SWT.CANCEL | 
                                                   SWT.ICON_WARNING);
                msg.setText("本当に終了しますか?");
                msg.setMessage("本当に終了しますか?");
                int ret = msg.open();
                if (ret == SWT.CANCEL) {
                        return false;
                }
                return true;
        }

}


最新更新日: 2004年10月20日
 
関連リンク
Eclipse API ドキュメント
API - ApplicationWindow
ApplicationWindow
MessageBox

- PR -

転職を強力支援!日本最大の人材紹介会社集合サイト[en]転職コンサルタント

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。

シマンテック 割引価格! オンライン販売だから低価格。いつでも簡単、見積・購入。

■原石のままでは、終わりたくない貴方へ!キャリアアップ転職を成功へとナビゲート

秋葉原・なんば・名古屋・札幌に店舗を構えるパソコンショップ!【ツクモ】


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送