JComboBox:想要第一个条目是空白条目

dav*_*cks 9 java swing combobox nullpointerexception jcombobox

我有一个jcombobox,其值来自列表.我想从下拉列表中首先看到空白.我接近它的方法是首先将列表类型的新对象放在第一位,如示例所示:

 final List<Object> list = getObjectsList();
  list.add(new Object()); 
Run Code Online (Sandbox Code Playgroud)

但这会导致空指针,如果这样做

list.add(null);
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题,但后来又用Comparator方法给了我另一个问题.所以任何一轮工作都会非常感谢.

小智 20

您还可以在添加项目之后但在事件侦听器之前将所选索引设置为-1.

    JcomboBox.setSelectedIndex(-1);
Run Code Online (Sandbox Code Playgroud)

如果您的JcomboBox使用泛型,此解决方案将更好地工作.

  • 当我的模型具有无效值时,此选项对我很有用,但我不希望用户能够输入无效值.一旦用户选择了一个项目,就不能再次选择空白的"无效"项目. (2认同)
  • 这是最优雅的方式. (2认同)

qwe*_*rty 14

JComboBox.insertItemAt("", 0);适合你吗?您还需要为空白条目添加验证

  • 是的,似乎已经解决了这个nullpointer,所以接下来,谢谢 (2认同)