Java Swing JComboBox 选择唯一可用的项目

标签 java swing jcombobox

我有一个只有一个项目的JComboBox。当我将此项填充到框中时,我立即使用 combobox.setSelectedItem(item) 选择它。但不幸的是,当我使用 combobox.getSelectedIndex(0)combobox.getSelectedItem(item) 读取项目时,我得到 -1/null。

当然我知道盒子里是哪个项目,但我不想添加一个声明来对这种情况使用react。

你能告诉我如何读取组合框中的单独项目吗?

最佳答案

问题

combobox.setSelectedItem(item)item 作为 Object 并在项目中检查它。由于 combobox.getSelecedIndex 返回 -1,我们已经知道没有选择,因此您的选择不成功。

原因

您将一个对象传递给 setSelectedItem,但在项目中找不到该 Object。您的 Object 很可能是一个 String 并且您正在传递一个类似的 String 作为参数,但您传递的参数不是相同的 String,bug 相似。

行为测试

String foo = "bar";
boolean theSame = (foo == "bar"); //false
boolean similar = foo.equals("bar"); //true

解决方案

调用 setSelectedItem 时使用相同的 Object 而不是类似的 Object

关于Java Swing JComboBox 选择唯一可用的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41789610/

相关文章:

java - JComboBox 单元渲染器在 Windows 外观和感觉下失败

java - 使用 JFrame 调用 JComboBox

java - 为什么在 Struts 1.2.7 中延迟实例化 MessageResourcesFactory?

java - JSF Richfaces 前端性能调优

java - 焦点所有者临时更改为空

java - 如何在 Netbeans 中创建可由用户编辑的提醒?

java - 组合框单元格编辑器的背景颜色

java - 文件构造函数无法读取 RestFul Web 服务中的文件

java - JAVA可以改变环境变量吗?

java - Spring /处女座 - java swing : JDialog starts behind other windows