JList 不显示所选值

发布于 2024-12-02 01:24:22 字数 188 浏览 5 评论 0原文

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

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

我希望你能有一些想法。

Here is my question:
In a small Swing app, I create a JList, which works with a ListDefaultModel.
I put some values in it, and when I try to click on these values, nothing graphical changes.

I mean: the selection event is raised, but I do not have the small rectangle, which is usually colored blue.

I hope you'll have some ideas.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不如归去 2024-12-09 01:24:22

根据我的经验,此类错误通常是由代码中引发的其他异常引起的。换句话说,如果由于 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);

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

祝你好运!

In my experience, such errors are often caused by other exceptions thrown in your code. In other words, if a NullPointerException in your code was be thrown as a result of SWING trying to retrieve a value to be displayed in your list, then your GUI might become unresponsive or behave weird.

My first advise would then be to try out a very simple example like:

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

If that works, then check your code to see if something might be wrong. If the above example does not work either, then i'd say you should post some more details here.

Good luck!

っ〆星空下的拥抱 2024-12-09 01:24:22

我也遇到了同样的问题(感谢OP的提示)。结果我的 ListCellRenderer 类实现了 ListCellRenderer 接口,而不是扩展 DefaultListCellRenderer。并调用super.getListCellRendererComponent

所以使用

class MyListCellRenderer extends DefaultListCellRenderer {}

而不是

class MyListCellRenderer extends JLabel implements ListCellRenderer {}

I had the same problem (thanks to the OP for the hint). Turned out that my ListCellRenderer class was implementing the ListCellRenderer interface instead of extending DefaultListCellRenderer. And callsuper.getListCellRendererComponent.

So use

class MyListCellRenderer extends DefaultListCellRenderer {}

instead of

class MyListCellRenderer extends JLabel implements ListCellRenderer {}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文