fun
非イベントディスパッチスレッドによって実行される次のものがあります。スレッドの途中で、私は
- 確認ボックスがポップアップします。スレッドはその実行を中断します。
- ユーザーが選択します。
- スレッドは選択を取得し、実行を継続します。
ただし、イベントディスパッチスレッドによってダイアログボックスが表示される必要があるため、スレッドセーフな方法でそれを行うのは簡単ではないことがわかりました。私は試します
public int fun()
{
// The following code will be executed by non event dispatching thread.
final int choice;
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
// Error.
choice = JOptionPane.showConfirmDialog(SaveToCloudJDialog.this, message, title, JOptionPane.YES_NO_OPTION);
}
});
return choice;
}
もちろん、これchoice
は最終的には機能しません。ダイアログからの戻り値をそれに割り当てることはできません。
上記の 3 つの目的を達成するための正しい方法は何ですか?