Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing:连接到第二帧的可视界面_Java_Swing - Fatal编程技术网

Java Swing:连接到第二帧的可视界面

Java Swing:连接到第二帧的可视界面,java,swing,Java,Swing,我有两帧。我想从第一帧打开第二帧。我试过这个,但它导致了一个例外 class aboutaction implements ActionListener { public void actionPerformed(ActionEvent e) { frame.dispose(); aboutInfo about = new aboutInfo(); about.frame.setVisible(true);

我有两帧。我想从第一帧打开第二帧。我试过这个,但它导致了一个例外

class aboutaction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            frame.dispose();
            aboutInfo about = new aboutInfo();
            about.frame.setVisible(true);
        }
    }
about.addActionListener(new aboutaction());

这是完整的程序:。

您的基本问题是由于对Swing工作原理的误解和糟糕的设计而产生的
空点异常

基本上,您将类定义为

public class aboutInfo extends JFrame {

    private JPanel contentPane;
    javax.swing.JFrame frame;
现在,混乱开始了,您基本上有两个帧,但您只向
aboutInfo
的实例添加组件


这里的基本答案是,摆脱框架,这只是混淆了问题。事实上,您首先不应该从
JFrame
扩展,您应该真正使用类似于
JPanel
的东西,只需将类的实例添加到
JFrame
JDialog
的实例中,或者添加任何您想要的容器,您的基本问题是
NullPointerException
由于对Swing工作原理的误解和糟糕的设计而产生的

基本上,您将类定义为

public class aboutInfo extends JFrame {

    private JPanel contentPane;
    javax.swing.JFrame frame;
现在,混乱开始了,您基本上有两个帧,但您只向
aboutInfo
的实例添加组件


这里的基本答案是,摆脱框架,这只是混淆了问题。事实上,您首先不应该从
JFrame
扩展,您应该真正使用类似于
JPanel
的东西,只需将类的实例添加到
JFrame
JDialog
的实例中,或者添加到您想要的任何容器中

您看到了什么异常?在java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)在java.awt.EventQueue$4.run(未知源)java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)java.awt.EventQueue.dispatchEvent(未知源)java.awt.EventQueue.dispatchEvent(未知源)java.security.AccessController.doPrivileged(本机方法)java.security.ProtectionDomain$4.run(未知源)java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)在java.awt.EventDispatchThread.PumpeEventsForFilter(未知源)在java.awt.EventDispatchThread.PumpeEventsForHierarchy(未知源)在java.awt.EventDispatchThread.PumpeEvents(未知源)在java.awt.EventDispatchThread.run(未知源)在java.awt.EventDispatchThread,
about.frame
null
(从它的发音来看
AboutInfo
扩展了
JFrame
anyway@kriszhelyazkov:您应该编辑问题并将堆栈跟踪添加到其中,而不是作为注释。您看到了什么异常?位于java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)在java.awt.EventQueue$4.run(未知源)在java.awt.EventQueue$4.run(未知源)在java.security.AccessController.doPrivileged(本机方法)在java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)在java.awt.EventQueue.dispatchEvent(未知源)在java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)java.awt.EventDispatchThread.pumpEventsForFilter(未知源)java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源)java.awt.EventDispatchThread.pumpEvents(未知源)java.awt.EventDispatchThread.run(未知源)java.awt.EventDispatchThread.pumpEvents(未知源)我是否应该猜测一下,说,
about.frame
null
(从它的发音来看
AboutInfo
extensed
JFrame
anyway@kriszhelyazkov:您应该编辑问题并将堆栈跟踪添加到其中,而不是作为注释。