那我一起工作的对象类已经拥有了.toString()
重写方法,给出它的名字。 但是我使用的同一个对象JComboBox
,我需要显示另一个字符串。 有没有办法做到这一点?
Answer 1:
你打赌有! 什么,你想要做的就是给你的JComboBox定制单元格呈现。
要做到这一点,你可以扩展DefaultListCellRenderer确保覆盖其getListCellRendererComponent(...)
方法。 一旦你做到了这一点,你会叫setRenderer(...)
对你的JComboBox,传递新的类的对象。
欲了解更多关于此,请务必检查出JComboBox时教程的描绘器部分 。
Answer 2:
退房组合框自定义呈现 。
如果你只是使用自定义渲染器,你将打破组合框,允许用户使用键盘选择项目的默认功能。 用户应该能够使用GUI时,使用鼠标或键盘。
上述解决方案展示了如何实现KeySelectionManager
所以您保留此默认功能。
文章来源: Add an object to a JComboBox but show a string without overriding the object's .toString() method