对象添加到一个JComboBox,但显示的字符串不重写对象的ToString()方法(Add an

2019-10-20 18:12发布

那我一起工作的对象类已经拥有了.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