我正在使用addItem()集合的所有元素填充JComboBox(使用).集合中的每个元素都是HashMap(所以它是一个Hashmaps的ComboBox ..).
我的问题是 - 鉴于我需要每个项目,我HashMap如何在GUI上的组合框中将文本设置为apear?它必须是地图中某个键的值.通常,如果我使用自己的类型填充组合框,我只会覆盖该toString()方法...但我不知道如何实现这一点,因为我使用的是Java HashMap.
任何想法(如果可能的话,没有实现我自己的HashMap)?
更新:似乎没有办法避免让对象在JComboBox上面覆盖toString()如果我想要自定义功能..我希望有一种方法可以(1)指定要加载到JComboBox中的对象和( 2)指定这些对象在GUI中的显示方式.
我用它DefaultComboBoxModel来显示一个客户列表JComboBox.该列表目前仅显示其名称.我还想在其中引用每个客户,DefaultComboBoxModel以便在选择名称时,它还包含对真实客户对象的引用.
为了实现这一点,我怀疑我必须扩展DefaultComboBoxModel并可能覆盖该addElement()方法?或者我可以添加一个新方法,也可以存储我对客户的引用?如果是这样,我是否必须查看源代码DefaultComboBoxModel以了解它如何存储元素?对不起,如果这个问题令人困惑,但我无法弄清楚如何以正确的方式做到这一点.谢谢阅读.