我有2帧。我要从第一帧打开第二帧。我试过了,但这导致了异常。
class aboutaction implements ActionListener {
public void actionPerformed(ActionEvent e) {
frame.dispose();
aboutInfo about = new aboutInfo();
about.frame.setVisible(true);
}
}
about.addActionListener(new aboutaction());
这是完整的程序:https://github.com/Zhelyazkov97/Fuel-calculator.git。
最佳答案
您的基本问题是对Swing的工作方式和正确设计的误解造成的NullPointerException
创建。
基本上,您将类定义为...
public class aboutInfo extends JFrame {
private JPanel contentPane;
javax.swing.JFrame frame;
现在,这里开始混乱了,您基本上有两个框架,但是您只曾向
aboutInfo
实例添加组件。这里的基本答案是,摆脱
frame
,这只是使问题变得混乱。实际上,您首先不应该从JFrame
扩展,您应该真正使用JPanel
之类的东西,只需将类的实例添加到JFrame
或JDialog
的实例,或者您想要的任何容器