1

所以我的问题是,我如何才能使主类在另一个类等待用户输入时不运行。

也许我的想法是错误的,所以请帮助我理清我的想法:)

这是一个小例子/片段。

Main Class 正在运行一个 JFrame,然后打开另一个 JFrame 要求用户输入另一个 JFrame 在 AddEditWindow 类中。

AddEditWindow temp = new AddEditWindow();

info[counter+1] = temp.newEditedInfo;

infoArray.add(info[counter+1]);

非常多,我要问的是,我该如何制作才能使其在用户最终完成输入所有内容之前不会到达第二行代码。

AddEditWindow 的 ActionListener/Event 处理程序仅用于按钮。

所以我在等待一个按钮被点击(以便初始化 AddEditWindow 类中的变量),然后让代码继续

info[counter+1] = temp.newEditedInfo;

希望我解释得足够好。

不知道是我想错了还是什么:|

4

2 回答 2

4

为简单起见,尝试类似...

int result = JOptionPane.showConfirmDialog(null, "Can I ask you a question", "Quesion", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
switch (result) {
    case JOptionPane.YES_OPTION:
        //...
        break;
    case JOptionPane.NO_OPTION:
        //...
        break;
}

在此处输入图像描述

JOptionPane是一个非常强大的组件。如果您提供一个组件而不是字符串,它将显示该组件...

例如...

在此处输入图像描述

JPanel panel = new JPanel(new GridLayout(0, 2));
panel.add(new JLabel("Name"));
panel.add(new JLabel("Last"));
panel.add(new JTextField("Jason"));
panel.add(new JTextField("Cardanas"));
panel.add(new JLabel("Phone"));
panel.add(new JLabel("Email"));
panel.add(new JTextField("333"));
panel.add(new JTextField("X"));
panel.add(new JLabel("PID"));
panel.add(new JLabel("Donation"));
panel.add(new JTextField("X"));
panel.add(new JTextField("0"));
panel.add(new JLabel("Membership"));
panel.add(new JLabel("Points"));
panel.add(new JTextField("false"));
panel.add(new JTextField("0"));

int result = JOptionPane.showConfirmDialog(null, panel, "Quesion", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
switch (result) {
    case JOptionPane.OK_OPTION:
        //...
        break;
    case JOptionPane.CANCEL_OPTION:
        //...
        break;
}
于 2012-10-04T06:02:57.570 回答
2

我想你是在问Modal对话。检查这个

于 2012-10-04T05:33:34.613 回答