这是我的问题:
在一个小型Swing应用中,我创建了JList
,它与ListDefaultModel
一起使用。
我在其中添加了一些值,当我尝试单击这些值时,没有任何图形更改。
我的意思是:引发选择事件,但我没有小矩形,通常是蓝色。
我希望你会有一些想法。
答案 0 :(得分: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);
如果可行,请检查您的代码以查看是否有错误。如果上面的例子也不起作用,那么我想你应该在这里发布更多细节。
祝你好运!答案 1 :(得分:1)
我遇到了同样的问题(感谢提示的OP)。原来我的ListCellRenderer
课程正在实施ListCellRenderer
界面,而不是扩展DefaultListCellRenderer
。并致电super.getListCellRendererComponent
。
所以使用
class MyListCellRenderer extends ListCellRenderer {}
而不是
class MyListCellRenderer extends JLabel implements ListCellRenderer {}