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有同样的问题,所以我在阅读代码后立即回答。