java 所选项目数组列表的索引
java index of selected item arraylist
在 Java 中,我试图确定刚刚单击了 ArrayList 中的哪个 JComboBox。部分代码如下:
private ArrayList<JComboBox<String>> setTextBoxList;
// basic initialization
public void populateList() {
String str[] = {"one", "two"};
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(new JComboBox<String>(str));
jcb.addActionListener(this);
}
}
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
if(o instanceof JComboBox) {
// here's where I'd like to see which box was just changed
System.out.println("change index "
+ setTextBoxList.indexOf((JComboBox)o) );
}
}
我的问题是,当我单击并更改其中一个组合框时,显示的索引始终为 -1。我想获取数组列表中哪个框被点击的索引 on/changed。我得到与显式类型转换相同的结果 w/o。
问题出在这段代码:
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(new JComboBox<String>(str)); // <-- error!
jcb.addActionListener(this);
}
您正在创建两个 JComboBox
,而获得侦听器的那个不在列表中。尝试将代码更改为:
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(jcb); // changed line
jcb.addActionListener(this);
}
在 Java 中,我试图确定刚刚单击了 ArrayList 中的哪个 JComboBox。部分代码如下:
private ArrayList<JComboBox<String>> setTextBoxList;
// basic initialization
public void populateList() {
String str[] = {"one", "two"};
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(new JComboBox<String>(str));
jcb.addActionListener(this);
}
}
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
if(o instanceof JComboBox) {
// here's where I'd like to see which box was just changed
System.out.println("change index "
+ setTextBoxList.indexOf((JComboBox)o) );
}
}
我的问题是,当我单击并更改其中一个组合框时,显示的索引始终为 -1。我想获取数组列表中哪个框被点击的索引 on/changed。我得到与显式类型转换相同的结果 w/o。
问题出在这段代码:
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(new JComboBox<String>(str)); // <-- error!
jcb.addActionListener(this);
}
您正在创建两个 JComboBox
,而获得侦听器的那个不在列表中。尝试将代码更改为:
for(int i=0; i<2; i++) {
JComboBox<String> jcb = new JComboBox<String>(str);
setTextBoxList.add(jcb); // changed line
jcb.addActionListener(this);
}