我的JComboBox
类型为myclass
。我使用CustomListRender
来显示myclass
的一个属性,它可以正常工作。
然后我设置myCombobox.setEditable(true)
。 JComboBox
变得可编辑,但默认情况下,combobox
中的文字设置为这样:
com.mypackagename.myclass
谁能告诉我如何解决这个问题?
提前致谢。
答案 0 :(得分:2)
正如How to Use Combo Boxes: Providing a Custom Renderer中讨论的那样,
默认渲染器知道如何渲染字符串和图标。如果将其他对象放在组合框中,则默认渲染器会调用
toString
方法以提供要显示的字符串。
除非被覆盖,否则您可能会看到从Object
继承的toString()
实施。至少,您需要覆盖MyClass#toString()
或更新您的渲染器相应地提供custom editor;有一个相关的例子here。大多数人更喜欢后者;显示自定义渲染器的sscce会更容易推荐替代品。