[英]NullPointerException when referencing a property of a JTabbedPane
What is wrong with the logic behind creating a JTabbedPane
and getting the tab count of 11, then using a setter? 创建JTabbedPane
并获得Tab计数为11,然后使用setter背后的逻辑有什么问题?
I try to reference the tabCount
of the SetObjects.currentJTabbedPane
and it throws NullPointerException
. 我尝试引用SetObjects.currentJTabbedPane
的tabCount
,它抛出NullPointerException
。
create 创造
jtp.setSelectedIndex(0);
int jtpCount=jtp.getTabCount();
System.out.println(C+M+AND+jtpCount+": jtpCount of The JTabbedPane created: \n");
setCurrentJTabbedPane(jtp);
int currentCount=SetObjects.currentJTabbedPane.getTabCount();
System.out.println(C+M+AND+currentCount+": currentCount for
SetObjects.currentJTabbedPane.getTabCount() : \n");
setter 二传手
public static void setCurrentJTabbedPane(JTabbedPane currentJTabbedPane) {
String M =(" --> in setCurrentJTabbedPane() var: <-- \n");
System.out.println(M);
SetObjects.currentJTabbedPane = currentJTabbedPane;
System.out.println(C+M+AND+SetObjects.currentJTabbedPane.getTabCount()+":
SetObjects.currentJTabbedPane.getTabCount() : \n");
}
output 输出
CLASS 类
SetObjects: SetObjects:
--> JTabbedPane obj() var: xxxxxxxxx : xxxxxxxx<-- -> JTabbedPane obj()var:xxxxxxxxx:xxxxxxxx <-
: 11: jtpCount of The JTabbedPane created: :11:创建了JTabbedPane的jtpCount:--> in setCurrentJTabbedPane() var: <--
Exception in thread "main" java.lang.NullPointerException 线程“主”中的异常java.lang.NullPointerException
at view.SetObjects.setCurrentJTabbedPane(SetObjects.java:385) 在view.SetObjects.setCurrentJTabbedPane(SetObjects.java:385)
at view.SetObjects.obj(SetObjects.java:217) 在view.SetObjects.obj(SetObjects.java:217)
at view.SchoolJDesktopPane.createInnerFrame(SchoolJDesktopPane.java:119) 在view.SchoolJDesktopPane.createInnerFrame(SchoolJDesktopPane.java:119)
at view.SchoolJDesktopPane.(SchoolJDesktopPane.java:97) 在view.SchoolJDesktopPane。(SchoolJDesktopPane.java:97)
at view.Main.createJDesktopPane(Main.java:60) 在view.Main.createJDesktopPane(Main.java:60)
at view.Main.main(Main.java:54) 在view.Main.main(Main.java:54)
Are you passing null
to setCurrentJTabbedPane
? 您将null
传递给setCurrentJTabbedPane
吗? Try adding more System.out.println statements to inspect each variable that might be the problem. 尝试添加更多System.out.println语句以检查可能是问题的每个变量。 Also, make your debugging statements simpler, ie replace System.out.println(A + B + C)
with three different statements. 另外,使调试语句更简单,即用三个不同的语句替换System.out.println(A + B + C)
。
EDIT: The reason for splitting up debug statements is that if System.out.println(object1.foo() + ", " + object2.bar())
throws a NullPointerException then you don't know which object was null. 编辑:拆分调试语句的原因是,如果System.out.println(object1.foo() + ", " + object2.bar())
抛出NullPointerException,则您不知道哪个对象为null。 Splitting it into two statements means the stack trace tells you exactly where the problem was. 将其拆分为两个语句意味着堆栈跟踪会准确告诉您问题出在哪里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.