【问题标题】:show the 1st and 2nd value of object in comboBox在组合框中显示对象的第一个和第二个值
【发布时间】:2015-02-19 13:46:19
【问题描述】:

我有一个带有作者列表的组合框,并且随着组合框的变化,我必须使用 java swing 在表中显示作者的详细信息。我确实喜欢:

for(Author author: Application.authors){
    jComboBoxAuthors.addItem(author);
}

并且选择的项目发生变化:

if(jComboBoxAuthors.getSelectedIndex()>0){
    Author author = (Author)e.getItem();
    String name = author.getFirstName()+" "+author.getLastName();
}

它显示组合中的对象,但我只需要名称,如果我 dojComboBoxAuthors.addItem(author.getFirstName()); 我无法在表格中获得价值,即。名称不返回任何内容。我该如何解决这个问题?

【问题讨论】:

标签: java swing jcombobox


【解决方案1】:

您可以做的一件事是重写 toString() 方法,如下所示

@Override
    public String toString() {
        return firstName+" "+lastName; // so that name will be displayed instead of default object
    }

但它有其局限性。希望对你有帮助

【讨论】:

    【解决方案2】:

    使用自定义渲染器会破坏 JComboBox 的默认功能。也就是说,您将无法再使用键盘选择项目。

    查看Combo Box With Custom Renderer 了解更多信息和更完整的解决方案,说明如何解决此问题。

    【讨论】:

      猜你喜欢
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 2017-04-14
      • 2016-08-31
      • 2022-08-13
      • 1970-01-01
      相关资源
      最近更新 更多