Java 从第一个表单到第二个表单的信息
我有两张表格。在第一种形式中,我创建了一个对象Java 从第一个表单到第二个表单的信息,java,swing,Java,Swing,我有两张表格。在第一种形式中,我创建了一个对象suggestion。然后我必须对它做点什么,然后将它提交到第二个表单。填写第一张表格后,如何打开第二个窗口 这是我的第一张表格: public class FormNum1 extends JFrame { JButton clearConfermation, conferm; JLabel dateofDeparture, dateofArrival, cityFrom, cityTo; JTextField dateof
suggestion
。然后我必须对它做点什么,然后将它提交到第二个表单。填写第一张表格后,如何打开第二个窗口
这是我的第一张表格:
public class FormNum1 extends JFrame {
JButton clearConfermation, conferm;
JLabel dateofDeparture, dateofArrival, cityFrom, cityTo;
JTextField dateofDepartureTextField, dateofArrivalTextField, cityFromTextField, cityToTextField;
static Suggestion suggestion;
Boolean n = false;
JFrame form1 = new JFrame("form1");
ActionListener actionPerformed;
public FormNum1(){
form1.setVisible(true);
form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form1.setSize(1200,250);
//setResizable(false);
form1.setLocationRelativeTo(null);
form1.setLayout(new FlowLayout());
clearConfermation = new JButton("Make clear");
conferm = new JButton("Confirm information ");
dateofDeparture = new JLabel("Date of Departure");
dateofArrival = new JLabel("Date of Arrival");
cityFrom = new JLabel("City From");
cityTo = new JLabel("City to");
dateofDepartureTextField = new JTextField(10);
dateofArrivalTextField = new JTextField(10);
cityFromTextField = new JTextField(10);
cityToTextField = new JTextField(10);
form1.add(clearConfermation);
form1.add(conferm);
form1.add(dateofDeparture);
form1. add(dateofDepartureTextField);
form1.add(dateofArrival);
form1.add(dateofArrivalTextField);
form1.add(cityFrom);
form1.add(cityFromTextField);
form1.add(cityTo);
form1.add(cityToTextField);
actionPerformed = new InformationFromFormOne();
conferm.addActionListener(actionPerformed);
clearConfermation.addActionListener(actionPerformed);
}
class InformationFromFormOne implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getSource() == conferm){
String dateOfDeparture = (dateofDepartureTextField.getText());
String dateOfArrival = (dateofArrivalTextField.getText());
String cityFrom = (cityFromTextField.getText());
String cityTo = (cityToTextField.getText());
suggestion = new Suggestion(dateOfDeparture, dateOfArrival, true, cityFrom, cityTo);
setVisible(false);
form1.dispose();
}
if (e.getSource() == clearConfermation){
dateofArrivalTextField.setText(null);
dateofDepartureTextField.setText(null);
cityFromTextField.setText(null);
cityToTextField.setText(null);
}
}
}
}
我的第二份表格是
public class FormNum2 extends JFrame{
static JFrame form2 = new JFrame("form2");
public FormNum2() {
form2.setSize(1200,600);
//frame.setResizable(false);
form2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form2.setLocationRelativeTo(null);
form2.setVisible(true);
}
}
主类
public class Main extends Thread{
public static void main(String[] args) {
FormNum1 form1 = new FormNum1();
FormNum2 form2 = new FormNum2();
}
}
在第一个帧处理之后,将第二个帧设置为
可见
,将FormNum2.setVisible(true)
显示第二个窗体。如果要在第一个窗体中填充对象后打开第二个窗口,则应在填充对象后调用FormNum2 form2=new FormNum2()。似乎您希望在form1.dispose()之后添加这一行。“Confirm”的拼写是这样的,而不是“conferm”。确认也是如此。我不想改变它,以防它在其他地方被使用1)参见2)参见,了解一个我不再费心修复的问题。3) 为了更快地获得更好的帮助,发布一个or.form1.setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)代码>(叹气)你真的应该检查Java文档中使用的方法,而不是像现在这样“盲目飞行”。你试过了吗?我自己没有试过,但通过查看你的代码,它应该可以工作。你试过了吗?它解决了你的问题吗?此外,@GherbiHicham的答案也应该有效。只需确保删除form2.setVisible(true);从表单2中的构造函数中,仔细考虑form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)的效果代码>&form2.setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)代码>。。当任一窗口关闭时会发生什么?“通过查看您的代码,它应该可以工作”您似乎觉得您是在回答提出原始问题的人。我看得出来。@AndrewThompson这个答案被OP接受了,所以它帮助他解决了问题,但我不知道为什么我被否决了。事实上我没有回应,因为OP接受答案的速度非常快,所以在那之后我觉得没有必要回应,我过去和OP有同样的问题,所以我在阅读代码后立即回答。