我刚刚阅读了 JComboBox 的 JavaDoc(我保证我有生活......我不是为了好玩而通读。=P),我认为我的程序遇到的问题可以归因于getSelectedItem()方法。文档说:
返回当前选定的项目。
如果组合框是可编辑的,则该值可能尚未通过addItem、insertItemAt或数据构造函数添加到组合框中。
如果您无法获取使用这些方法或构造函数添加的值,那么该方法有什么用?以及如何从“可编辑”JComboBox 中获取值?
我刚刚阅读了 JComboBox 的 JavaDoc(我保证我有生活......我不是为了好玩而通读。=P),我认为我的程序遇到的问题可以归因于getSelectedItem()方法。文档说:
返回当前选定的项目。
如果组合框是可编辑的,则该值可能尚未通过addItem、insertItemAt或数据构造函数添加到组合框中。
如果您无法获取使用这些方法或构造函数添加的值,那么该方法有什么用?以及如何从“可编辑”JComboBox 中获取值?
用户在 JComboxBox 中添加的额外值不会添加到ComboBoxModel中,但会通过 getSelectedItem() 以 java.lang.String 的形式提供
如果您无法获取使用这些方法或构造函数添加的值,那么该方法有什么用?以及如何从“可编辑”JComboBox 中获取值?
这不是文档所说的。文档说所选项目可能没有使用 add/insertItem 添加,如果用户自己编辑/键入值,情况很可能就是这种情况。
在任何情况下,getSelectedItem() 都会为您提供在组合框中选择的任何内容,无论它是您填写的值之一,还是用户键入的值。
final Object object = jComboBox.getEditor().getItem();
if (object instanceof String) {
final String string = (String)object;
}
当您允许在组合框模型中提供的值范围之外的某些输入时很有用。