我有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之类的东西,只需将类的实例添加到JFrameJDialog的实例,或者您想要的任何容器

09-10 19:35