- - PR -
SWTでのモーダルダイアログの表示の際に処理を止める方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-26 23:18
現在SWTを使ったソフトを作っているのですが、
モーダルダイアル後を表示する部分で以下のようなコードを書いたのですが dialog.open()で処理は止まりません。 Shell dialog = new Shell(parentShell, SWT.DIALOG_TRIM | SWT.SYSTEM_MODAL); // SWT.APPLICATION_MODALなどにしても結果は同じ コントロール追加などの処理。 dialog.open(); return returnValue; ダイアログないのイベントで returnValueに値を設定しているので ダイアログが閉じてから、 return を実行しなければまずいのです。 どうしようかと思い、dialog.open()の後に、 while (!dialog.isDisposed()) { if (!dialog.getDisplay().readAndDispatch()) { dialog.getDisplay().sleep(); } } というようにメッセージループを作り、処理を止めたのですが この方法で問題はないのでしょうか。 | ||||
|
投稿日時: 2005-06-27 03:18
>というようにメッセージループを作り、処理を止めたのですが
>この方法で問題はないのでしょうか。 問題ないです。処理を戻さない場合は通常そのようにするはずです。 少々趣が違いますが、Dialogクラスを継承したダイアログを作成し、 openメソッドで値を返す場合、次のようにします。openメソッドで メッセージループを回しているのが判ると思います。
| ||||
|
投稿日時: 2005-06-27 13:32
大変参考になりました。ありがとうございます。
|
1