我正在尝试获取JComboBox对象的位置(作为int),生成ComboBox并拥有这样的动作侦听器
for (int d=0; d<i; d++)
{
titulos.addItem(listaPraBox[d]);
}
ActionListener comboListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
ItemSelectable is =(ItemSelectable)actionEvent.getSource();
objectoseleccionado = selectedString(is);
DeskMetodos.listaTexto(objectoseleccionado);
}
};
titulos.addActionListener(comboListener);
执行
static private String selectedString(ItemSelectable is) {
Object selected[] = is.getSelectedObjects();
return ((selected.length == 0) ? "null" : (String)selected[0]);
}
但我希望所选对象的位置通过该int从另一个数组中获取字符串。
这甚至可能吗?通过我所做的搜索,甚至没有提到这一点。
答案 0 :(得分:5)
JComboBox
定义getSelectedIndex()
。实现只是循环检查与getSelectedItem()
的等式的数据模型。
这不会导致ItemSelectable
,但数据模型本身也没有,所以你可能需要使用具体的类。
答案 1 :(得分:1)
不是将项存储在ComboBox中,而是必须使用索引来引用另一个值数组。只需在ComboBox中存储一个对象,该对象具有与您当前显示值匹配的toString()
输出以及对该数组中对象的直接引用。这样,拉动所选项目或处理comobo框的任何对象都可以拉出他们需要的值,而不必“知道”这个其他数组。