繁体   English   中英

将对象添加到JComboBox,但显示一个字符串而不覆盖该对象的.toString()方法

[英]Add an object to a JComboBox but show a string without overriding the object's .toString() method

我正在使用的对象类已经重写了.toString()方法,并为其命名。 但是我在JComboBox使用相同的对象,因此我需要显示另一个String。 有没有办法做到这一点?

你打赌那里! 您要做的就是为您的JComboBox提供一个自定义单元格渲染器。

为此,您可以扩展DefaultListCellRenderer,以确保覆盖其getListCellRendererComponent(...)方法。 完成此操作后,您将在JComboBox上调用setRenderer(...) ,并传入新类的对象。

有关更多信息,请确保查看JComboBox教程renderer部分

签出具有自定义渲染器的组合框

如果仅使用自定义渲染器,则会破坏组合框的默认功能,该组合框允许用户使用键盘选择项目。 使用GUI时,用户应该能够使用鼠标或键盘。

上面的解决方案显示了如何实现KeySelectionManager以便您保留此默认功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM