使用Swing的ComboBoxModel
,获取所选元素时需要输入类型,因为接口定义如下:
public interface ComboBoxModel<E> extends ListModel<E> {
void setSelectedItem(Object anItem);
Object getSelectedItem();
}
我认为getSelectedItem
的返回类型可能是E
。
实际上,这是由ListModel
继承的ComboBoxModel
接口完成的,用于按索引选择:
public interface ListModel<E> {
E getElementAt(int index);
}
在E
中不使用ComboBoxModel
类型参数的原因是什么?
答案 0 :(得分:0)
因为用户可以编辑ComboBox文本字段。
JComboBox.setEditable(true);
如果ComboBox是可编辑的,则用户可以在ComboBox Textfield中输入Text,无论为模型提供什么类型参数,JrcboBox.getSelectedItem()都会返回String。
如果您想获得E使用的对象:
E e = JComboBox.getModel().getElementAt(JComboBox.getSelectedIndex());