【发布时间】:2018-01-01 22:33:56
【问题描述】:
这是一个非常基本的 Java 语法问题。我在自己的类中有一个名为 frmMainMenu 的表单,它有一个标有“Schedule”的按钮。当您单击“计划”时,我希望它打开另一个表单。那是在一个名为 frmSchedule 的单独类中。
在 frmMainMenu 的 ActionListener 部分我有这个:
public void actionPerformed(ActionEvent e) {
System.out.println("TEST");
frmSchedule window2 = new frmSchedule();
}
它在控制台中打印单词“TEST”(所以我知道代码在正确的位置)。但是,它不会打开计划表。我也这样试了,也没用:
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);
}
}
我想我只是找不到方法来表达代码以告诉它打开第二个表单。
【问题讨论】:
-
你永远不会让框架可见
-
The Use of Multiple JFrames: Good or Bad Practice?; Why is it frowned upon to use a null layout in Swing?;如果您需要快速从用户那里收集信息,我会考虑使用
CardLayout或JDialog -
类名应该以大写字符开头。你见过 API 中没有的类吗?以身作则并遵循惯例。
-
Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同的语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
标签: java eclipse swing windowbuilder