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

您想要的是让您的对话框成为modal。使用Dialog.setModal(boolean)

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

然后,当您从构造它的代码调用setVisible对话框时,代码将等待对话框关闭。

于 2013-06-14T20:12:00.733 回答
0

您可以让框架手动运行事件泵,直到它关闭。看到这个问题

于 2013-06-14T20:11:54.557 回答
0

在您的代码中,您仍在制作 JDialog since MyFrame extends JDialog,这可能是您想要的,而不是 JFrame。您还需要做的是使其成为模态的。

通过适当的构造函数或使用setModal(true)创建对话框将阻止输入到程序的其他窗口并在调用者中停止执行,直到对话框关闭。

于 2013-06-14T20:12:58.283 回答