连接两个java框架

连接两个java框架,java,eclipse,swing,jframe,multiple-instances,Java,Eclipse,Swing,Jframe,Multiple Instances,实际上,我是java新手,我想知道如何链接两个帧。我制作了两个不同的java文件,看起来很简单。但是我现在还不能解决这个问题。它应该通过单击Enter.java中的Next按钮打开欢迎框。有人能帮我吗 这是我的密码: Enter.java import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing

实际上,我是java新手,我想知道如何链接两个帧。我制作了两个不同的java文件,看起来很简单。但是我现在还不能解决这个问题。它应该通过单击Enter.java中的Next按钮打开欢迎框。有人能帮我吗

这是我的密码:

Enter.java

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Enter extends JFrame {

public Enter() {
// TODO Auto-generated constructor stub

setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));

add(new JLabel("Name"));
add(new JTextField(8));
add(new JLabel("Address"));
add(new JTextField(15));
add(new JLabel("Surname"));
add(new JTextField(8));
add(new JLabel("Phone"));
add(new JTextField(8));
add(new JButton("Next"));
}


/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
    Enter myProg = new Enter();
myProg.setTitle("Ceng 344 - Lab 7");
myProg.setSize(450, 400);
myProg.setLocationRelativeTo(null);
myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myProg.setVisible(true);
}

}

Welcome.java
 import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class welcome extends JFrame {

public welcome() {
// TODO Auto-generated constructor stub

setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));

add(new JLabel("Welcome"));
}


/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
welcome myProg = new welcome();
myProg.setTitle("Ceng 344 - Lab 7");
myProg.setSize(450, 400);
myProg.setLocationRelativeTo(null);
myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myProg.setVisible(true);
}

}

如果需要从
下一步
按钮调用
欢迎
框架,以便将操作添加到此按钮

试试这个:

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Main extends JFrame {

    public Main() {
// TODO Auto-generated constructor stub

        setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));

        add(new JLabel("Name"));
        add(new JTextField(8));
        add(new JLabel("Address"));
        add(new JTextField(15));
        add(new JLabel("Surname"));
        add(new JTextField(8));
        add(new JLabel("Phone"));
        add(new JTextField(8));
        JButton next = new JButton("Next");
        add(next);
        next.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NextActionPerformed(evt);
            }

            private void NextActionPerformed(ActionEvent evt) {
                welcome myProg = new welcome();
                myProg.setTitle("Ceng 344 - Lab 7");
                myProg.setSize(450, 400);
                myProg.setLocationRelativeTo(null);
                myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                myProg.setVisible(true);
            }
        });



    }

    /**
     * @param args
     */
    public static void main(String[] args) {
// TODO Auto-generated method stub
        Main myProg = new Main();
        myProg.setTitle("Ceng 344 - Lab 7");
        myProg.setSize(450, 400);
        myProg.setLocationRelativeTo(null);
        myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myProg.setVisible(true);
    }
}

class welcome extends JFrame {

    public welcome() {
// TODO Auto-generated constructor stub

        setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));
        add(new JLabel("Welcome"));
    }
    /**
     * @param args
     */
}
首先,我删除了Welcome的主类,并将其内容添加到NextActionPerformed方法中

  • 您需要将
    ActionListener
    添加到
    JButton
  • 您可以在构造函数内设置
    JFrame
    的属性
  • welcome.java
    中不需要
    main()
    它
  • Enter.java

    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    public class Enter extends JFrame implements ActionListener {
    public Enter(){
        setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));
        add(new JLabel("Name"));
        add(new JTextField(8));
        add(new JLabel("Address"));
        add(new JTextField(15));
        add(new JLabel("Surname"));
        add(new JTextField(8));
        add(new JLabel("Phone"));
        add(new JTextField(8));
        JButton next = new JButton("Next");
        next.addActionListener(this);
        add(next);
    }
    
    public void actionPerformed(ActionEvent ae){
        //if your frame contains more than one button then you can check which button is clicked using ae.getSource() or using ae.getActionCommand()
        new Welcome();
    }
    public static void main(String[] args) {
        Enter myProg = new Enter();
        myProg.setTitle("Ceng 344 - Lab 7");
        myProg.setSize(450, 400);
        myProg.setLocationRelativeTo(null);
        myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myProg.setVisible(true);
    }
    }
    
    //欢迎光临

    import java.awt.FlowLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    public class Welcome extends JFrame {
        public Welcome() {
            setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));
            add(new JLabel("Welcome"));
            setTitle("Ceng 344 - Lab 7");
            setSize(450, 400);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
        }
    }
    

    谢谢,它成功了。但是你能给我解释一下这个密码吗。它有什么作用?私有void NextActionPerformed(ActionEvent evt){welcome myProg=new welcome();myProg.setTitle(“Ceng 344-Lab 7”);myProg.setSize(450400);myProg.setLocationRelativeTo(null);myProg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myProg.setVisible(true);}好的,您需要将操作添加到下一个按钮,当您单击它时,它将调用另一个帧,因此我创建下一个按钮JButton next=new JButton(“next”),然后我给它添加了一个动作,这个动作叫做NextActionPerformed,这个方法叫做Welcome框架这个部分你在Welcome Main方法中称它,所以我在Main方法中不需要它,这是下一个按钮动作我想你需要在Java GUI中阅读,所以试试这个:@user1598040如果您在
    Enter.java
    中编辑,那么它也会工作,但是我们不需要在每个java类中实现
    main()
    。我们只是在起始类中实现
    main()
    。@user1598040它显示了什么错误?这对我的工作有帮助machine@user1598040可能您需要调用
    newwelcome()而不是
    新欢迎()
    ,因为您的
    welcome
    java类将以小写形式启动,它在next.addActionListener(此)中显示错误;我试过欢迎和欢迎我不知道问题出在哪里,但现在它起作用了。谢谢你的帮助