gpt4 book ai didi

java 所选项目数组列表的索引

转载 作者:行者123 更新时间:2023-12-02 02:03:53 25 4
gpt4 key购买 nike

在 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。我想获取刚刚单击/更改的数组列表中哪个框的索引。我得到相同的结果,无需显式类型转换。

最佳答案

问题出在这一段代码中:

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 所选项目数组列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51140264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com