我正在使用的对象类已经覆盖了.toString()
方法,并给出了它的名称。但是我在JComboBox
中使用相同的对象,我需要显示另一个String。有没有办法实现这个目标?
答案 0 :(得分:4)
你打赌有!你想要做的是给你的JComboBox一个自定义的单元格渲染器。
为此,您可以扩展DefaultListCellRenderer,确保覆盖其getListCellRendererComponent(...)
方法。完成此操作后,您可以在JComboBox上调用setRenderer(...)
,传入新类的对象。
有关详情,请务必查看renderer section of the JComboBox tutorial。
答案 1 :(得分:3)
结帐Combo Box With Custom Renderer。
如果您只使用自定义渲染器,则会破坏组合框的默认功能,允许用户使用键盘选择项目。使用GUI时,用户应该能够使用鼠标或键盘。
上述解决方案显示了如何实现KeySelectionManager
,以便保留此默认功能。