将JLabel添加到JList?

时间:2012-04-05 17:27:48

标签: java swing jlabel jlist

到目前为止,我已经尝试过简单地浏览我的标签并将每个标签添加到列表的列表模型中:

listModel.addElement(label);

所以这可行,但它只是给出了标签的字符串表示而不是实际的标签。

基本上,是否可以拥有JLabels的JList?如果没有,那么有什么是可以更新的JLabel可滚动列表的好方法?

2 个答案:

答案 0 :(得分:1)

JListJTableJComboBox's popup默认JLabel / JComponent返回Renderer,然后没有理由放置JComponents类型到JList(在这种情况下)

but it simply gives a string representation of the label rather than the actual label
  • 请阅读Renderer的工作原理,JLabelIcon,示例herehere

  • Renderers的概念类似于JListJTableJComboBox's popup

答案 1 :(得分:1)

几乎不需要在Swing组件的模型端放置JComponent JListJTreeJTable,...) 。在ListModel中,您可以在Object中放置要展示的JList,然后让渲染器处理该表示。

因此,如果您想将每个Object表示为特殊标签,请在渲染器中创建该标签。

有关详细信息,请参阅Swing list tutorial。本教程不包含自定义渲染器,而是引用custom renderer section of the combobox tutorial,它非常相似