2

JOptionPane を使用した単純な JDialog があり、正常に動作します。しかし、JFrame を使用してより複雑なウィンドウを作成したいのですが、それを JDialog として機能させたいのですが、次のステップはウィンドウで選択されたものに依存するため、JFrame または JDialog が開いたときにコードを停止する必要があることを意味します。

これが私のクラスです。コードを停止するためにそれを実行する方法はありますか

public class MyFrame extends JDialog{
private static final long serialVersionUID = 1L;
public MyFrame() throws IOException {
    setSize(600, 450);
    dialogInit();
    setTitle("Travel");
    setVisible(true);
    URL url = this.getClass().getResource("/images/travel1.png");
    BufferedImage bf = ImageIO.read(url);
    this.setContentPane(new backImage(bf));
    JButton b = new JButton("Send");
    JCheckBox tf=new JCheckBox("Country");
    b.setBounds(318, 143, 98, 27);
    tf.setBounds(235, 104, 150, 27);
    add(b);
    add(tf);
}
}
4

3 に答える 3

3

あなたが望むのは、ダイアログをモーダルにすることです。使用Dialog.setModal(boolean):

public MyFrame() throws IOException {
    setModal(true);

setVisible次に、ダイアログを構築したコードからダイアログを呼び出すと、コードはダイアログが閉じられるまで待機します。

于 2013-06-14T20:12:00.733 に答える
0

フレームが閉じるまで、イベント ポンプを手動で実行することができます。この質問を参照してください。

于 2013-06-14T20:11:54.557 に答える
0

あなたのコードでMyFrame extends JDialogは、JFrame の代わりにおそらく必要なものであるため、まだ JDialog を作成しています。さらに行う必要があるのは、モーダルにすることです。

適切なコンストラクターまたはsetModal(true)を使用してダイアログを作成すると、プログラムの他のウィンドウへの入力がブロックされ、ダイアログが閉じられるまで呼び出し元での実行が停止します。

于 2013-06-14T20:12:58.283 に答える