【问题标题】:JList does not show selected valueJList 不显示所选值
【发布时间】:2011-11-06 23:54:04
【问题描述】:

这是我的问题: 在一个小型 Swing 应用程序中,我创建了一个 JList,它与 ListDefaultModel 一起使用。 我在其中添加了一些值,当我尝试单击这些值时,没有任何图形变化。

我的意思是:选择事件被引发,但我没有小矩形,通常是蓝色的。

我希望你能有一些想法。

【问题讨论】:

  • 也许选择颜色是白色的?试试list.setSelectionBackground()
  • 您是否可以在此处发布排序可运行代码以证明您对此有问题,sscce.org
  • “这是我的问题:” 旁注。您已经描述了 GUI 的问题,但您没有提出问题。为了帮助英语不好的人,以及我们这些在 22 小时疯狂编程后阅读问题的人,您可以添加一个。

标签: java swing selection jlist


【解决方案1】:

根据我的经验,此类错误通常是由代码中引发的其他异常引起的。换句话说,如果由于 SWING 尝试检索要在列表中显示的值而引发代码中的 NullPointerException,那么您的 GUI 可能会变得无响应或行为怪异。

我的第一个建议是尝试一个非常简单的示例,例如:

DefaultListModel m = new DefaultListModel();
m.addElement("One");
m.addElement("Two");
m.addElement("Three");
m.addElement("Four");
m.addElement("Five");
SomeList.setModel(m);

如果可行,请检查您的代码,看看是否有问题。如果上面的示例也不起作用,那么我会说您应该在此处发布更多详细信息。

祝你好运!

【讨论】:

  • 这是我的一个错误,关于单元格渲染器。感谢您的所有回答:)。
  • @deathiop 您可以发布您的解决方案作为答案并接受它。
【解决方案2】:

我遇到了同样的问题(感谢 OP 的提示)。原来我的ListCellRenderer 类正在实现ListCellRenderer 接口,而不是扩展DefaultListCellRenderer。并致电super.getListCellRendererComponent

所以用

class MyListCellRenderer extends DefaultListCellRenderer {}

而不是

class MyListCellRenderer extends JLabel implements ListCellRenderer {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多