所以我的问题是,如何做到这一点,以使主类不会在另一个类正在等待用户输入时运行。
也许我想的是错误的方式,所以请帮助我理清我的想法:)
这是一个小例子/片段。
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;
希望我解释得足够好。
不知道我是在想错还是什么:|
最佳答案
为了简单起见,请尝试类似...
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;
}