0

我刚刚阅读了 JComboBox 的 JavaDoc(我保证我有生活......我不是为了好玩而通读。=P),我认为我的程序遇到的问题可以归因于getSelectedItem()方法。文档说:

返回当前选定的项目。

如果组合框是可编辑的,则该值可能尚未通过addIteminsertItemAt或数据构造函数添加到组合框中。

如果您无法获取使用这些方法或构造函数添加的值,那么该方法有什么用?以及如何从“编辑”JComboBox 中获取值?

4

4 回答 4

2

用户在 JComboxBox 中添加的额外值不会添加到ComboBoxModel中,但会通过 getSelectedItem() 以 java.lang.String 的形式提供

于 2010-03-29T06:44:25.323 回答
2

如果您无法获取使用这些方法或构造函数添加的值,那么该方法有什么用?以及如何从“可编辑”JComboBox 中获取值?

这不是文档所说的。文档说所选项目可能没有使用 add/insertItem 添加,如果用户自己编辑/键入值,情况很可能就是这种情况。

在任何情况下,getSelectedItem() 都会为您提供在组合框中选择的任何内容,无论它是您填写的值之一,还是用户键入的值。

于 2010-03-29T07:15:27.923 回答
0
final Object object = jComboBox.getEditor().getItem();
if (object instanceof String) {
    final String string = (String)object;
}
于 2010-03-29T06:44:27.503 回答
0

当您允许在组合框模型中提供的值范围之外的某些输入时很有用。

于 2010-03-29T07:06:23.087 回答