簡體   English   中英

引用JTabbedPane的屬性時發生NullPointerException

[英]NullPointerException when referencing a property of a JTabbedPane

創建JTabbedPane並獲得Tab計數為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");
}

輸出


SetObjects:
-> JTabbedPane obj()var:xxxxxxxxx:xxxxxxxx <-
:11:創建了JTabbedPane的jtpCount:

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

線程“主”中的異常java.lang.NullPointerException
在view.SetObjects.setCurrentJTabbedPane(SetObjects.java:385)
在view.SetObjects.obj(SetObjects.java:217)
在view.SchoolJDesktopPane.createInnerFrame(SchoolJDesktopPane.java:119)
在view.SchoolJDesktopPane。(SchoolJDesktopPane.java:97)
在view.Main.createJDesktopPane(Main.java:60)
在view.Main.main(Main.java:54)

您將null傳遞給setCurrentJTabbedPane嗎? 嘗試添加更多System.out.println語句以檢查可能是問題的每個變量。 另外,使調試語句更簡單,即用三個不同的語句替換System.out.println(A + B + C)

編輯:拆分調試語句的原因是,如果System.out.println(object1.foo() + ", " + object2.bar())拋出NullPointerException,則您不知道哪個對象為null。 將其拆分為兩個語句意味着堆棧跟蹤會准確告訴您問題出在哪里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM