0

ユーザーがまだ最初の showConfirmDialog を閉じていない場合、2 番目 (または n 番目) の showConfirmDialog が表示されないようにしたいのですが、それを行う方法が見つかりません。

4

3 に答える 3

1

JOptionPane.showConfirmDialogがブロックしています。呼び出しからの戻り値を確認して、次のようなダイアログを表示する必要があるかどうかを判断します。

int result = JOptionPane.showConfirmDialog(frame, "First question?");

if (result != JOptionPane.CANCEL_OPTION) {

    int nextResult = JOptionPane.showConfirmDialog(frame, "Next question?");
    ...
}

尋ねる質問のリストがある場合は、ループを使用して、ユーザーがダイアログを閉じたときに中断できます。

for (String question : questions) {

    int result = JOptionPane.showConfirmDialog(frame, question);

    if (result == JOptionPane.CANCEL_OPTION)
        break;

    // handle (yes/no) the response
    ....
}
于 2012-07-05T14:44:38.543 に答える
1

私があなたの質問 (およびコメント) を正しく理解していればThread、ソケットでテキストをリッスンする特定のものがあります。テキストを受信すると、新しいテキストを含む新しいダイアログが表示されます。

を含むダイアログを表示することで、同様の問題を解決しましたJTextArea。新しいテキストを受け取ったとき、Threadテキストを に追加し、JTextAreaまだJTextArea表示されていないときに を表示しました。

ユーザーがダイアログを閉じると、JTextArea.

ちょっとした補足: コメントに追加した追加情報を使用して質問を更新することをお勧めします。これらのコメントにより、解決しようとしている問題がより明確になります。

于 2012-07-05T18:28:53.800 に答える
0

その場合は、ストレート JDialog を使用することをお勧めします (JOptionPane は、JDialog を作成するための単なるショートカットです)。WindowListener / windowClosing イベントを使用して、次の JOptionPane を表示する必要があるかどうかを判断できます

于 2012-07-05T14:44:45.770 に答える