Tips > ウィンドウを閉じる前に警告を出すには? |
|
ウィンドウを閉じる前に警告を出すには?Shellウィンドウを閉じるときには警告ダイアログ等を出すには、shellにShellListenerを追加します。そしてウィンドウのクローズボタンが押されたときに、shellClosedメソッドが呼び出されるので、ここにMessageBoxを表示する処理を書けばよいわけです。その後実際にアプリケーションを終了しない場合は、条件分岐でShellEventのdoitフィールドにfalseを代入します。 Shell shell = ...; shell.addShellListener(new ShellListener(){ public void shellClosed(ShellEvent e){ MessageBox box = new MessageBox(...); ... int ret = box.open(); if (ret == SWT.CANCEL) { //Shellを終了させない場合 e.doit = false; return; } //Shellは終了 ... } }); サンプルプログラムShellのクローズボックスを押すと終了確認のダイアログが表示されます。 ソースコード (ShellCloseTest.java)import org.eclipse.swt.widgets.*; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ShellAdapter; import org.eclipse.swt.events.ShellEvent; public class ShellCloseTest { public static void main(String[] args) { new ShellCloseTest(); } public ShellCloseTest() { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("WindowCloseTest"); shell.addShellListener(new ShellAdapter(){ public void shellClosed(ShellEvent e) { MessageBox msg = new MessageBox(shell, SWT.OK | SWT.CANCEL | SWT.ICON_WARNING); msg.setText("本当に終了しますか?"); msg.setMessage("本当に終了しますか?"); int ret = msg.open(); if (ret == SWT.CANCEL){ e.doit = false; return; } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } } 最新更新日: 2004年10月20日 |
- PR -
マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。 シマンテック 割引価格! オンライン販売だから低価格。いつでも簡単、見積・購入。 ■原石のままでは、終わりたくない貴方へ!キャリアアップ転職を成功へとナビゲート 秋葉原・なんば・名古屋・札幌に店舗を構えるパソコンショップ!【ツクモ】 マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。 シマンテック 割引価格! オンライン販売だから低価格。いつでも簡単、見積・購入。 |
||||
|
|||||
Copyright(C) 2003,2004 Jasmin Project. All Right Reserved. |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||