当前位置: 首页 > 知识库问答 >
问题:

打开新框架时出现NullPointerException

盖昊东
2023-03-14

今天我有点不高兴,看,我正在尝试运行我的代码,却得到了一个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框架的粘贴盒,因为在这里发布它有点过分:http://pastebin.com/LSXbc7KE,也要有另一个框架的粘贴盒,以防万一你需要它:http://pastebin.com/hbdd7j84

编辑:这是堆垛机,很抱歉以前没有!

java.AWT.Container线程“AWT-EventQueue-0”java.lang.NullPointerException中出现异常。addImpl(未知源)位于java.awt.Container。在gui.MenuNuevoJuego.access$2(MenuNuevoJuego.java:94)的gui.Menu Nuevojuego.irGuiJuego(MenuNevoJuego.java:113)的gui.GUIJuego.(GUIJuigo.java:113)处添加(未知源),在javax.swing.AbstractButton的gui.menuNuevo Juego$2.actionPerformed(MenuNoevoJuigo.java:74)处添加。javax.swing.AbstractButton$Handler上的fireActionPerformed(未知源)。actionPerformed(未知源)位于javax.swing.DefaultButtonModel。fireActionPerformed(未知源)位于javax.swing.DefaultButtonModel。setPressed(未知源),位于javax.swing.plaf.basic.BasicButtonListener。mouseReleased(未知源)位于java.awt.Component。javax.swing.JComponent处的processMouseEvent(未知源)。java.awt.Component处的processMouseEvent(未知源)。java.awt.Container上的processEvent(未知源)。java.awt.Component处的processEvent(未知源)。dispatchEventImpl(未知源)位于java.awt.Container。dispatchEventImpl(未知源)位于java.awt.Component。dispatchEvent(未知源),位于java.awt.LightweightDispatcher。位于java.awt.LightweightDispatcher的retargetMouseEvent(未知源)。java.awt.LightweightDispatcher上的processMouseEvent(未知源)。dispatchEvent(未知源)位于java.awt.Container。dispatchEventImpl(未知源),位于java.awt.Window。dispatchEventImpl(未知源)位于java.awt.Component。dispatchEvent(未知源)位于java.awt.EventQueue。dispatchEventImpl(未知源)位于java.awt.EventQueue。在java.awt.EventQueue$3.run(未知源),在java.security.AccessController的java.awt.EventQueue$3.run(未知源。java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)的doPrivileged(本机方法)。java.awt.EventQueue上java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)的doPrivileged(Native Method)。dispatchEvent(未知源)位于java.awt.EventDispatchThread。pumpOneEventForFilters(未知源)位于java.awt.EventDispatchThread。pumpEventsForFilter(未知源),位于java.awt.EventDispatchThread。pumpEventsForHierarchy(未知源)位于java.awt.EventDispatchThread。java.awt.EventDispatchThread上的pumpEvents(未知源)。java.awt.EventDispatchThread上的pumpEvents(未知源)。运行(未知源)

顺便说一下,谢谢你的阅读!

共有1个答案

万喜
2023-03-14

从GUIJuego.java的第113行抛出NPE,堆栈跟踪显示:

panelDatosCiudad.add(arcaLabel);

发生这种情况是因为第35行中定义的< code > arc label 从未被设置为值,所以您向容器添加了一个空JLabel。

 类似资料:
  • 本文向大家介绍JS的location.href跳出框架打开新页面的方法,包括了JS的location.href跳出框架打开新页面的方法的使用技巧和注意事项,需要的朋友参考一下 今天遇到个问题,后面在框架中,当判断登录失效后要返回登录页面,但登录页面却在框架内打开,我想让它直接跳出框架打开(这里不是打开新窗口),终于在网上找到了办法,分享给大家: echo "<script language=\"j

  • 问题内容: 现有2个版本的java系统,1.6版本无法卸载(dll无法运行) 求大神拯救!小白一枚想学习安卓系统 问题答案: 把你想用的那个版本设置环境变量,设置JAVA_HOME=”你安装的JDK路径”

  • 问题内容: 我有一个条形图,它从mysql数据库中获取数据集,而我一直 坚持使用chartMouseClicked。 正如我在上一个 问题中了解到的那样,当前代码是在单击x或y轴条时打印的,但是 当我单击x或y轴上的特定条并打开新的框架或图表时,如何设置该代码。 还有一个信息框会很好。 问题答案: JOptionPane在您的处理程序中打开一个,如下所示ChartMouseListener添加到中

  • 我已经添加了一个actionlistener到一个jmenuproject,它调用一个类,该类读取一个excel文件并在一个jframe中打开一个jgraph。我还添加了另一个actionlistener到不同的jmenuproject,为相同的exel文件调用相同的类,但不同的excel表(不同的int参数)。然而,当我运行我的主框架时,我点击菜单项,我一次只能打开其中一个。我必须关上一个来打开

  • 问题内容: 我的应用程序模型集中有一个User实体,其定义如下: 并且在我应用程序不同部分(控制器类)中的方法中,我正在检索并尝试按以下方式修改镜像列表: 这引发了一个错误,指出: 我怀疑这是由于我误解了标签的某些元素,但是没有人能阐明我该如何纠正它? 谢谢。 问题答案: 默认情况下,关联和元素集合是延迟加载的。 这意味着仅当需要调用一种收集方法时,才从数据库中加载收集元素。但是,当然,实体需要附

  • 当我按下文件打开对话框上的取消按钮时(代码如下),我收到以下错误: 错误显示为模式弹出窗口: 到目前为止,我只在Mac电脑上测试过。 我的代码如下: 处理创建对话框的主要过程代码如下: 我的调试器语句从未到达。此外,当实际选择了一些文件时,代码工作正常,只有在按下“取消”时才会失败。 触发IPC调用的代码(ES6 JSX)如下所示: 代码通过巴别塔6进行处理。我的如下: 电子版本:. babel依