【发布时间】:2018-07-10 21:19:59
【问题描述】:
我对 Java 还是很陌生,我已经开始使用 swing 使用 netbeans java IDE 8.2 进行一个简单的 GUI 项目,并且遇到了空指针异常。
我已将大部分代码删除到底部,以便尝试找出问题出在哪里,但我仍然遇到仅运行这些代码行的异常。
package finalmodel;
import javax.swing.*;
public class FinalModel extends JFrame {
public static void main (String[] args) {
new FinalModel();
}
public FinalModel () {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
应用程序运行良好,据我所知,异常不会影响功能(弹出一个窗口,可以从上面的代码中成功关闭),但在窗口关闭时会抛出异常。
IDE 给我的堆栈跟踪是
java.lang.NullPointerException: peer
at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)
at sun.awt.windows.WInputMethod.access$400(WInputMethod.java:45)
at sun.awt.windows.WInputMethod$1.run(WInputMethod.java:602)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159) [catch]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
【问题讨论】:
-
看起来更像是 NetBeans 的问题而不是 Swing...尝试将代码复制粘贴到 非 GUI 项目中,看看它是否仍然是 NPE。
-
为了澄清,你用的是什么版本的java?我想尝试在我的系统上复制它。
-
@EvOlaNdLuPiZ 我添加了一张包含所有版本信息的图片。
-
@Matthieu 对不起,如果这是一个愚蠢的问题,但我将如何在非 GUI 项目中运行此 GUI 相关代码?
-
@Omar,Java 就是 Java :) 只需创建一个“常规”项目并让您的类扩展
JFrame。您将不会使用可能会妨碍您的 NetBeans WYSIWYG 编辑器。
标签: java swing nullpointerexception