comboBox是我用来填充JComboBox的String数组
JComboBox chooser = new JComboBox(comboBox);
为什么当我调用第二条命令时,它返回给我Object类的toString方法(具体来说:“ [Ljava.lang.Object;@28f4b2ca
”)而不是String?
courrentKey = String.valueOf(chooser.getSelectedObjects());
答案 0 :(得分:0)
getSelectedObjects()
返回一个Object[]
,您看到的是此toString()
数组中的Object
。
您可能打算使用courrentKey = chooser.getSelectedItem()
答案 1 :(得分:0)
一些额外的信息。 误解可能是JComboBox仅适用于字符串值。
您可以使用String数组初始化JComboBox
String[] items = new String[] { "LOL", "YOLO" };
JComboBox combo = new JComboBox(items);
但是此后,仍然可以使用 JComboBox.addItem(item)方法添加对象。
其中项目是任何对象->字符串,整数,双精度,浮点型,...
因此,这是允许的:
Integer extraItem = 69;
combo.addItem(extraItem);
这是有效的,除非您在初始化时对类型进行参数化,然后再只能添加String对象。
JComboBox<String> combo = new JComboBox<String>(items);
要获取所选项目,您可以执行以下操作
Object selectedItem = combo.getSelectedItem();
或
Object selectedItem = combo.getSelectedObjects()[0];
然后使用返回值
if (selectedItem == null) {
return null;
} else {
return selectedItem.toString().trim();
}