【问题标题】:Add an object to a JComboBox but show a string without overriding the object's .toString() method将对象添加到 JComboBox 但显示字符串而不覆盖对象的 .toString() 方法
【发布时间】:2014-08-21 17:27:26
【问题描述】:

我正在使用的对象类已经覆盖了它的.toString() 方法,并给出了它的名称。但我在JComboBox 中使用相同的对象,我需要显示另一个字符串。有没有办法做到这一点?

【问题讨论】:

  • Insufficientint data for answer..Post your code..
  • 微软和苹果等公司花费数百万美元来创建可用的用户界面。我很好奇,你为什么接受破坏组合框功能的解决方案?

标签: java swing jcombobox tostring


【解决方案1】:

你敢打赌!您要做的是为您的 JComboBox 提供一个自定义单元格渲染器。

为此,您可以扩展 DefaultListCellRenderer,确保覆盖其 getListCellRendererComponent(...) 方法。完成此操作后,您将在 JComboBox 上调用 setRenderer(...),并传入新类的对象。

有关更多信息,请务必查看renderer section of the JComboBox tutorial

【讨论】:

    【解决方案2】:

    查看Combo Box With Custom Renderer

    如果您只使用自定义渲染器,您将破坏允许用户使用键盘选择项目的组合框的默认功能。用户在使用 GUI 时应该能够使用鼠标或键盘。

    上述解决方案展示了如何实现KeySelectionManager,以便您保留此默认功能。

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 2013-04-13
      • 2021-07-16
      相关资源
      最近更新 更多