JTable
カスタムセルエディターを使用しています。エディターが実装されFocusListener
ているため、ユーザーがセルから離れた場所をクリックした場合に、セルの内容が有効かどうかを確認できます。
JOptionPane
within focusLost
(in the EventDispatchThread
) を使用して、ユーザーが古い値に戻すか、調整された値を受け入れるかを選択できるようにしたいと思います。
ここに問題があります。ユーザーがセルを編集しているときに、テーブルから離れたボタンをクリックすると、ボタンが戻る前actionlisteners
にアラートが表示されます。 JOptionPane
これは私がしたいことです:
- ユーザーがセルを編集
- ユーザーがボタンをクリック
- セルがフォーカスの喪失を検出
- JOptionPane が表示され、ユーザーがアクションを選択する
- JOptionPane が閉じ、セルの値が設定されます
- 呼び出されたボタンの actionListeners
代わりに、これが起こっています:
- ユーザーがセルを編集
- ユーザーがボタンをクリック
- セルがフォーカスの喪失を検出
- JOptionPane が表示され、ユーザーがアクションを選択する
- 呼び出されたボタンの actionListeners
- JOptionPane が閉じ、セルの値が設定されます
JOptionPane
が閉じられるまでボタンのアクション イベントを延期することは可能ですか?
JDialog
他のスレッドから、ダイアログ自体がイベントを処理できるように、イベントのディスパッチが継続されるようにする魔法を読んだことがあります。