草庐IT

Java Swing : Extend DefaultComboBoxModel and override methods

coder 2024-03-19 原文

我正在使用 DefaultComboBoxModelJComboBox 中显示客户列表。该列表目前只显示他们的名字。我还想在 DefaultComboBoxModel 中引用每个客户,以便在选择名称时,它还包含对真实客户对象的引用。

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

最佳答案

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

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

关于Java Swing : Extend DefaultComboBoxModel and override methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042128/

有关Java Swing : Extend DefaultComboBoxModel and override methods的更多相关文章

  1. 基于javaSwing、MySQL的酒店客房管理系统(附源码) - 2

    由于近期询要的人过多,自行加群769119544领取源码目录一、功能需求二、数据字典1.数据流条目2.文件条目三、用例图四、数据流图五、E-R图六、系统框架 七、数据库设计八、界面设计九、代码展示1、数据表对象层(domain层)1.1、房间对象初始化1.2、旅客对象初始化1.3、 管理员对象初始化2、数据访问对象层(dao层)2.1、房间相关信息2.2、旅客信息2.3、管理员信息3、util包3.1、JDBC交互数据库(DBUtil)3.2、实时时间(DateUtil)4、业务层(server层)4.1、房间(RoomContorller)4.2、旅客(RoomInContorller)4.

随机推荐