有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

引用JTabbedPane的属性时发生java NullPointerException

创建JTabbedPane并获取制表符计数背后的逻辑有什么问题 11,然后使用setter

我试图引用SetObjects.currentJTabbedPanetabCount,它抛出 NullPointerException

创建

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");

二传手

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");
}

输出

CLASS
SetObjects:
--> JTabbedPane obj() var: xxxxxxxxx : xxxxxxxx<--
: 11: jtpCount of The JTabbedPane created:

--> in setCurrentJTabbedPane() var: <-- 

Exception in thread "main" java.lang.NullPointerException
at view.SetObjects.setCurrentJTabbedPane(SetObjects.java:385)
at view.SetObjects.obj(SetObjects.java:217)
at view.SchoolJDesktopPane.createInnerFrame(SchoolJDesktopPane.java:119)
at view.SchoolJDesktopPane.(SchoolJDesktopPane.java:97)
at view.Main.createJDesktopPane(Main.java:60)
at view.Main.main(Main.java:54)


共 (1) 个答案

  1. # 1 楼答案

    你要把null传给setCurrentJTabbedPane?尝试添加更多系统。出来println语句检查可能存在问题的每个变量。另外,使调试语句更简单,即用三个不同的语句替换System.out.println(A + B + C)

    编辑:分割调试语句的原因是,如果System.out.println(object1.foo() + ", " + object2.bar())抛出一个NullPointerException,那么您就不知道哪个对象是null。将其拆分为两条语句意味着堆栈跟踪会准确地告诉您问题所在