【问题标题】:Java - jList getSelectedValue problemJava - jList getSelectedValue 问题
【发布时间】:2011-09-05 15:53:43
【问题描述】:

我正在尝试将对象(jList1 上的选定项)转换为字符串,但它返回 null

我试过了:

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

&

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

但是他们都为我返回 null,是我做错了什么吗?

这是按下 button1 时发生的情况:

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

【问题讨论】:

  • 试试String string1 = jList1.getSelectedValue()
  • @Evan,给出类型不匹配错误(无法将对象转换为字符串)
  • 好的,确定一下。 JList 的文档示例不清楚如何处理返回值。
  • 发布您的SSCCE 来证明问题。
  • 没有帮助,这不是 SSCCE。阅读链接!

标签: java swing


【解决方案1】:

这个对象是什么类型的?如果可以的话,看看类的 toString 方法 - 很可能它正在返回(错误地)null

如果getSelectedValue() 返回一个有效对象,这是您获取null 的唯一方法。但是,如果它返回了null,您应该在尝试在null 引用上调用toString 时获得NullPointerException。所以我认为没有其他可能性(前提是您发布的代码 sn-p 是准确的并且您的描述是正确的)。

【讨论】:

  • 我相信返回 null 的是 getSelectedValue(),我在上面发布的 sn-ps 是我尝试使用的以及描述。
  • @Jamie,你为什么不添加一个调试打印输出来测试你的理论?例如。 if (object1 == null) System.out.println("selected value is null");
【解决方案2】:

selectedValue 上的 toString() 方法很可能返回 null。

是否已正确实施?

【讨论】:

  • 我相信是的,虽然我确实在 jList 上选择了一些东西。
  • int index = jList1.getSelectedIndex(); 使用它来查看是否实际上选择了列表中的任何值。如果它返回 -1,则没有选择任何值。
  • @Rakesh,根据选择的项目返回 012 等。
【解决方案3】:

自己对此进行了排序,不确定出了什么问题,但我将 GUI 和大部分代码(除了导致问题的那部分之外)复制到了一个新项目中,重新编写了该部分并且它工作了。

【讨论】:

  • 这个答案对可能遇到同样问题的其他人没有帮助。
猜你喜欢
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2013-05-19
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多