Java 如何使整数上升并显示在JLabel上?
我知道这听起来像是个愚蠢的问题,但我无法理解。我对java非常陌生,下面是我的代码:Java 如何使整数上升并显示在JLabel上?,java,integer,jlabel,Java,Integer,Jlabel,我知道这听起来像是个愚蠢的问题,但我无法理解。我对java非常陌生,下面是我的代码: if (e.getSource() == Game1){ wins++; Wins.setText(wins+"/30 endings completed!"); /* Game1 g1 = new Game1(); g1.Game1();*/ } 我原以为这样行得通,但实际上不行。以下是我运行代码时得到的结果: Exception
if (e.getSource() == Game1){
wins++;
Wins.setText(wins+"/30 endings completed!");
/* Game1 g1 = new Game1();
g1.Game1();*/
}
我原以为这样行得通,但实际上不行。以下是我运行代码时得到的结果:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at WindowObject.actionPerformed(WindowObject.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
如果有人能帮助我,我将非常感激,谢谢。确保Integer win不为空。我确实看到NPE背后的一个原因是win为null,而您在null对象上说的是win++。在执行++时,当自动装箱时,它将抛出NPE 也 确保JLabel不为null。如果对空对象调用方法,它将抛出NPE
Integer win或JLabel win都为null,或者两者都为null。否则,我看不出NPE背后有什么原因。假设
Wins
为null
。用debugh检查一下,就像我说的,我是java新手,所以我不知道你说“你可以只新建变量,我的意思是确保win和win不为null。”。仅为了验证,请执行win=new integer(1234)并查看您是否能够在JLabel上看到此1234