所以我的问题是,如何使主类不运行而另一个类正在等待用户的输入。
也许我认为这是错误的方式,所以请帮助我理清我的想法:)。
这是一个小例子/片段。
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;
希望我解释得很清楚。
不知道我是在考虑错误还是在做什么:|
答案 0 :(得分: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;
}
答案 1 :(得分:2)
我想你问的是Modal
对话框。查看this