Java Swing setEditable(boolean)在自定义渲染器的JComboBox中不起作用

时间:2012-10-07 14:06:31

标签: java swing jcombobox packaging renderer

我的JComboBox类型为myclass。我使用CustomListRender来显示myclass的一个属性,它可以正常工作。

然后我设置myCombobox.setEditable(true)JComboBox变得可编辑,但默认情况下,combobox中的文字设置为这样:

 com.mypackagename.myclass

谁能告诉我如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:2)

正如How to Use Combo Boxes: Providing a Custom Renderer中讨论的那样,

  

默认渲染器知道如何渲染字符串和图标。如果将其他对象放在组合框中,则默认渲染器会调用toString方法以提供要显示的字符串。

除非被覆盖,否则您可能会看到从Object继承的toString()实施。至少,您需要覆盖MyClass#toString()更新您的渲染器相应地提供custom editor;有一个相关的例子here。大多数人更喜欢后者;显示自定义渲染器的sscce会更容易推荐替代品。