2011-09-05 77 views
1

我想將一個對象(jList1上的選定項)轉換爲一個字符串,但它返回nullJava - jList getSelectedValue問題

我曾嘗試:

Object object1 = jList1.getSelectedValue(); 
String string1 = object.toString(); 

&

String string1 = jList1.getSelectedValue().toString(); 

但他們都返回null對我來說,是不是我做錯了什麼?

這是按下按鈕1時,會發生什麼:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    Object object1 = jList1.getSelectedValue(); 
    String string1 = object1.toString(); 
    System.out.println(string1) 
} 
+0

嘗試'String string1 = jList1.getSelectedValue()'。 –

+0

@Evan,提供了一個類型不匹配錯誤(無法將對象轉換爲字符串) – Jamie

+0

好的,只要確保。 「JList」的文檔示例不清楚如何處理返回值。 –

回答

-4

自己對此進行了排序,不知道是哪裏出了問題,但是我將GUI和大部分代碼(除了導致問題的部分之外)複製到一個新項目中,並重新編寫了該部分並且工作正常。

+4

這個答案不能幫助其他可能遇到同樣問題的人。 –

1

機會是上了selectedValue了toString()方法返回null。

它已正確實施?

+0

我相信是的,儘管我在jList上選擇了一些東西。 – Jamie

+0

'int index = jList1.getSelectedIndex();'用它來查看實際上是否選擇了列表中的任何值。如果它返回-1,則不選擇任何值。 – Rakesh

+0

@Rakesh,根據選擇哪個項目返回「0」,「1」,「2」等。 – Jamie

5

此對象是什麼類型?如果可以的話,請查看班級的toString方法 - 有可能它正在返回(錯誤地)null

如果getSelectedValue()返回一個有效的對象,這是您獲得null的唯一方法。但是,如果它返回null,則在嘗試撥打null參考中的toString時應該得到NullPointerException。所以我認爲沒有其他的可能性(只要你發佈的代碼片段是確切的,你的描述是正確的)。

+0

我相信它是返回null的'getSelectedValue()',我上面發佈的片段是我試圖使用的描述。 – Jamie

+0

@Jamie,你爲什麼不添加調試打印輸出來測試你的理論?例如。 'if(object1 == null)System.out.println(「selected value is null」);' –