加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Swing:扩展DefaultComboBoxModel并覆盖方法

发布时间:2020-12-14 06:03:19 所属栏目:Java 来源:网络整理
导读:我使用DefaultComboBoxModel来显示JComboBox中的客户列表.该列表目前仅显示其名称.我还希望在DefaultComboBoxModel中引用每个客户,以便在选择名称时,它还保存对真实客户对象的引用. 为了实现这一点,我怀疑我必须扩展DefaultComboBoxModel并可能覆盖addElemen
我使用DefaultComboBoxModel来显示JComboBox中的客户列表.该列表目前仅显示其名称.我还希望在DefaultComboBoxModel中引用每个客户,以便在选择名称时,它还保存对真实客户对象的引用.

为了实现这一点,我怀疑我必须扩展DefaultComboBoxModel并可能覆盖addElement()方法?或者我可以添加一个新方法,也可以存储我对客户的引用?如果是这样,我是否必须查看DefaultComboBoxModel的源代码以查看它如何存储元素?对不起,如果这个问题令人困惑,但我无法弄清楚如何以正确的方式做到这一点.谢谢阅读.

解决方法

如果您在Customer对象中重写toString()以返回您想要在JComboBox中呈现的内容,它将正常工作.如果您将toString用于其他目的,则需要覆盖模型或渲染器以使用Customer对象中的正确字段.

– 更新汤姆的建议 – 创建一个新对象CustomerView,它包装真实的客户对象,因此可以提供对它的引用,但也会覆盖toString()以返回客户的名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读