如何从 JButton 打开另一个窗体
How to open another form from a JButton
这是一个非常基础的 Java 语法问题。我在自己的 class 中有一个名为 frmMainMenu 的表单,它有一个标记为 "Schedule" 的按钮。当您单击 "Schedule" 我希望它打开另一个表单。那个在一个单独的 class 中,叫做 frmSchedule。
在 frmMainMenu 的 ActionListener 部分我有这个:
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
frmSchedule window2 = new frmSchedule();
}
它在控制台中打印 "TEST" 这个词(所以我知道代码在正确的位置)。但是,它不会打开 Schedule 窗体。我也这样试过,也没用:
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
new frmSchedule();
}
这是 frmSchedule 的代码:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
public class frmSchedule extends JFrame {
private JPanel contentPane;
public frmSchedule() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("Trials");
btnNewButton.setBounds(128, 100, 89, 23);
contentPane.add(btnNewButton);
}
}
我想我只是找不到表达代码的方式来告诉它打开第二个表单。
正如 MadProgrammer 所指出的,它可能有助于使其可见 ;)
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
frmSchedule window2 = new frmSchedule();
window2.setVisible(true);
}
此外,如果您不知道您对布局做了什么,您应该看看这个:what does frame.setLayout(null)do?(frame is a JFrame)
这是一个非常基础的 Java 语法问题。我在自己的 class 中有一个名为 frmMainMenu 的表单,它有一个标记为 "Schedule" 的按钮。当您单击 "Schedule" 我希望它打开另一个表单。那个在一个单独的 class 中,叫做 frmSchedule。
在 frmMainMenu 的 ActionListener 部分我有这个:
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
frmSchedule window2 = new frmSchedule();
}
它在控制台中打印 "TEST" 这个词(所以我知道代码在正确的位置)。但是,它不会打开 Schedule 窗体。我也这样试过,也没用:
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
new frmSchedule();
}
这是 frmSchedule 的代码:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
public class frmSchedule extends JFrame {
private JPanel contentPane;
public frmSchedule() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("Trials");
btnNewButton.setBounds(128, 100, 89, 23);
contentPane.add(btnNewButton);
}
}
我想我只是找不到表达代码的方式来告诉它打开第二个表单。
正如 MadProgrammer 所指出的,它可能有助于使其可见 ;)
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
frmSchedule window2 = new frmSchedule();
window2.setVisible(true);
}
此外,如果您不知道您对布局做了什么,您应该看看这个:what does frame.setLayout(null)do?(frame is a JFrame)