2013年11月26日(火) [長年日記]
■ [java] JOptionPaneが閉じる前に処理をしたい
JOptionPaneで表示できるダイアログはボタンを押すと必ず閉じてしまうので、閉じる前にテキストフィールドの値をチェックしたりすることができない。
ダイアログが閉じる前に処理をする方法を調べていて、
が参考になったのでメモ。
- JDialog.html#setContentPane()でJOptionPaneのインスタンスを設定すると、JOptionPaneが作るのとほぼ同じダイアログを作れる。
- JOptionPaneのインスタンスにPropertyChangeListenerをセットすると、ダイアログ上のどのボタンが押されたのかを調べることができる。JOptionPaneのドキュメントに「 選択が変更されると、setValue が呼び出され、PropertyChangeEvent が生成されます。JOptionPane がすべての入力 setWantsInput に設定されている場合、バウンドプロパティーの JOptionPane.INPUT_VALUE_PROPERTY を待機することによっても、ユーザーが値を入力または選択した時点を判定することができます。 」とあるのがその説明だと思う。