簡體   English   中英

打開新框架時發生NullPointerException

[英]NullPointerException while opening new frame

今天,我要稍微介紹一下,我正在嘗試運行我的代碼,並得到了NullPointerException。 異常中的線索將我引導至此功能:

private void irGuiJuego(JFrame frame){
    SwingConsole.run(new GUIJuego(), 800, 600, true);
    frame.dispose();
}

SwingConsole將具有以下代碼:

package utiles;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class SwingConsole {

    public static void run(final JFrame frame, final int width, final int height, final boolean exitOnClose) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {

                if (exitOnClose)
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                frame.setSize(width, height);
                //frame.setResizable(false);
                frame.setVisible(true);

            }
        });
    }

    public static void run(final JFrame frame, final int width, final int height, final boolean exitOnClose, final String title) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {

                if (exitOnClose)
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                frame.setTitle(title);
                frame.setSize(width, height);
                frame.setVisible(true);

            }
        });
    }


}

考慮到我正在使用相同的方法打開另一個框架,這有點奇怪,具體來說,此函數是:

private void volverMenuInicio(JFrame frame){
    SwingConsole.run(new MenuInicio(), 300, 150, true);
    frame.dispose();
}

我會留給你們GUIJuego框架的pastebin,因為將其張貼在這里有點過多: http ://pastebin.com/LSXbc7KE,如果需要的話,也可以使用其他框架的pastebin: http: //pastebin.com/hbdd7j84

編輯:這是stacktrace,對不起之前沒有它!

線程“ AWT-EventQueue-0”中的異常java.awt.Container.addImpl(java.awt.Container.addImpl(Unknown Source)處的gui.GUIJuego。(GUIJuego.java:113 )在gui.MenuNuevoJuego.irGuiJuego(MenuNuevoJuego.java:95)在gui.MenuNuevoJuego.access $ 2(MenuNuevoJuego.java:94)在gui.MenuNuevoJuego $ 2.actionPerformed(MenuNuevoJuego.java:wing)在javax。 (未知源)在javax.swing.plaf.basic上的javax.swing.DefaultButtonModel.setPressed(未知源)在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)在javax.swing.plaf.basic .BasicButtonListener.mouseReleased(未知源)在java.awt.Component.processMouseEvent(未知源)在javax.swing.JComponent.processMouseEvent(未知源)在java.awt.Component.processEvent(未知源)在java.awt.Container java.awt.Component.dispatchatchEventImpl(.java.awt.C處的.processEvent(未知源) java.awt.LightweightDispatcher.retargetMouseEvent(未知源)的java.awt.LightweightDispatcher.retargetMouseEvent(未知源)的java.awt.LightweightDispatcher.processMouseEvent(未知源)的java.awt.LightweightDispatcher處的ontainer.dispatchEventImpl(未知源)。 java.awt.Container.dispatchEventImpl的dispatchEvent(未知源)java.awt.Window.dispatchEventImpl的java.awt.Component.dispatchEventImpl(未知源)的java.awt.EventQueue.dispatchEventImpl(未知源)的Unknown源java.awt.EventQueue.access $ 200處的未知源)(java.awt.EventQueue $ 3.run處的未知源)(java.awt.EventQueue $ 3.run處的未知源)(java.security.AccessController.doPrivileged (本機方法)在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知源)在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知源)在java.awt.EventQueue $ 4.run(未知源)在java.awt.EventQueue $ 4 .run(未知源),位於java.security.AccessController.doPrivil 例如,java.security.ProtectionDomain $ 1.doIntersectionPrivilege(本地方法)處的本地方法(未知源)java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源)java.awt.EventDispatchThread.pumpEvents(未知源)java.awt.EventDispatchThread.pumpEvents(未知源)java.awt.EventDispatchThread.run(未知源)資源)

順便說一下,感謝您的閱讀!

NPE從GUIJuego.java的第113行拋出,如堆棧跟蹤所示:

panelDatosCiudad.add(arcaLabel);

發生這種情況是因為在第35行中定義的arcaLabel從未設置為值,因此您要向容器中添加一個空JLabel。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM