连接两个java框架
实际上,我是java新手,我想知道如何链接两个帧。我制作了两个不同的java文件,看起来很简单。但是我现在还不能解决这个问题。它应该通过单击Enter.java中的Next按钮打开欢迎框。有人能帮我吗 这是我的密码:连接两个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
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()
它
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(此)中显示错误;我试过欢迎和欢迎我不知道问题出在哪里,但现在它起作用了。谢谢你的帮助