You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Apache NetBeans中为JFrame窗体添加Swing菜单栏时抛出异常

NetBeans添加Swing菜单栏时出现空指针异常问题

背景

通过New project -> Java with Ant -> Java Application创建Apache NetBeans新项目,右键点击包图标,选择New -> JFrame form创建JFrame窗体,随后从Palette面板添加Swing组件。

问题

添加Swing Menus下的Menu Bar组件后,窗体上直接显示堆栈跟踪信息,导致无法看到任何组件。堆栈跟踪内容如下:

The following exception has been thrown during painting of the form. Use the Navigator window to fix or remove
the problematic component.
java.lang.NullPointerException: Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component,
java.awt.Graphics, int, int, int, int)" because the return value of "com.apple.laf.AquaMenuPainter $RecyclableBorder.get(" is
null
at java.desktop/com.apple.laf.AquaMenuPainter.paintMenuBarBackground(AquaMenuPainter.java:149)
at java.desktop/com.apple.laf.AquaMenuBarUl.paint(AquaMenuBarUl.java:88)
at java.desktop/javax.swing.plaf.ComponentUl.update(ComponentUl.java:161)
at java.desktop/javax.swing.JComponent.paintComponent(Component.java:852)
at java.desktop/javax.swing.JComponent.paint(Component.java:1128)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JLayeredPane.paint(LayeredPane.java:586)
at java.desktop/javax.swing.jComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75)
at java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112)
at java.desktop/java.awt.Container.paint(Container.java:2005)
atorg.netbeans.modules.form.fakepeer.FakePeerContainer.paint(FakePeerContainer.java:64)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:975)
at java.desktop/javax.swing.JComponent.paintUComponent.java:1137)
at org.netbeans.modules.form.ComponentLayer$DesignerPanel.paint(ComponentLayer.java:165)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JComponent.paintChildrenUComponent.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at org.netbeans.modules.form.FormDesigner$1.paintChildren(FormDesigner.java:195)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JLayeredPane.paint(LayeredPane.java:586)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paintUComponent.java:1137)
at java.desktop/javax.swing.JViewport.paint(Viewport.java:736)
at java.desktop/javax.swing.jComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
atjava.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at java.desktop/javax.swing.JLayer.paint(Layer.java:476)
at java.desktop/javax.swing.plaf.LayerUl.paint(LayerUl.java:85)
at org.netbeans.core.multiview.SplitLayerUl.paint(SplitLayerUl.java:134)
at java.desktop/javax.swing.plaf.ComponentUl.update(ComponentUl.java:161)
at java.desktop/javax.swing.JComponent.paintComponent(Component.java:852)
at java.desktop/javax.swing.JLayer.paint(Layer.java:471)
at java.desktop/javax.swing.JComponent.paintChildren(Component.java:961)
at java.desktop/javax.swing.JComponent.paint(Component.java:1137)
at iava.desktop/iavax.swina.IComponent.paintChildren(IComponent.iava:961)

当向下滚动使菜单栏在Design标签页中不可见时,堆栈跟踪消失,其他组件正常显示;向上滚动菜单栏重新可见时,堆栈跟踪再次出现,组件消失。

此前排查

已搜索相关问题,包括Stack Overflow帖子、GitHub问题、Oracle社区讨论,但现有解决方案均无法解决该问题。

系统信息

NetBeans“关于”菜单显示的系统信息:

Product Version: Apache NetBeans IDE 15
Java: 18.0.2.1; Java HotSpot (TM) 64-Bit Server VM 18.0.2.1+1-1
Runtime: Java(M) SE Runtime Environment 18.0.2.1+1-1
System: Mac OS X version 12.4 running on x86_64; UTF-8; en_CN (nb)
User directory: /Users/bryan351018/Library/Application Support/NetBeans/15
Cache directory: /Users/bryan351018/Library/Caches/NetBeans/15

命令行执行java --version的输出:

java 18.0.2.1 2022-08-18
Java(TM) SE Runtime Environment (build 18.0.2.1+1-1)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)

内容的提问来源于stack exchange,提问作者Bryan351018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:45:36