2011-09-05 79 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”);' –