Java JComboBox itemstatechanged事件
我有两个JComboxes 当我从第一个jComboBox中选择一个ID时,我需要它 第二个jComboBox将自动选择与第一个jComboBox中选择的索引相同的索引 我已经使用此代码成功地实现了第一个jcombobox的itemstatechangedJava JComboBox itemstatechanged事件,java,swing,jcombobox,stack-overflow,Java,Swing,Jcombobox,Stack Overflow,我有两个JComboxes 当我从第一个jComboBox中选择一个ID时,我需要它 第二个jComboBox将自动选择与第一个jComboBox中选择的索引相同的索引 我已经使用此代码成功地实现了第一个jcombobox的itemstatechanged private void driver_select_comboboxItemStateChanged(java.awt.event.ItemEvent evt) { int index1 = driver_select_id_comb
private void driver_select_comboboxItemStateChanged(java.awt.event.ItemEvent evt) {
int index1 = driver_select_id_combobox.getSelectedIndex();
int index2 = driver_select_combobox.getSelectedIndex();
if( index1 != index2 ){
driver_select_id_combobox.setSelectedIndex(index2);
}
}
private void driver_select_id_comboboxItemStateChanged(java.awt.event.ItemEvent evt) {
int index1 = driver_select_id_combobox.getSelectedIndex();
int index2 = driver_select_combobox.getSelectedIndex();
if( index1 != index2 ){
driver_select_combobox.setSelectedIndex(index1);
}
}
但是,当我在第二个jComboBox中使用以下代码添加itemstatechange事件时
private void driver_select_comboboxItemStateChanged(java.awt.event.ItemEvent evt) {
int index1 = driver_select_id_combobox.getSelectedIndex();
int index2 = driver_select_combobox.getSelectedIndex();
if( index1 != index2 ){
driver_select_id_combobox.setSelectedIndex(index2);
}
}
private void driver_select_id_comboboxItemStateChanged(java.awt.event.ItemEvent evt) {
int index1 = driver_select_id_combobox.getSelectedIndex();
int index2 = driver_select_combobox.getSelectedIndex();
if( index1 != index2 ){
driver_select_combobox.setSelectedIndex(index1);
}
}
我得到一个StackOverflowerr错误。
这是因为当第一个jcombobox改变状态时,它改变了
第二个JCOMBOX,当第二个JCOMBOX改变状态时,它会改变第一个JCOMBOX的状态。等等
因此,调用itemstatechanged方法是永无止境的
有人能帮我怎么做吗?或者你对如何实现这一点有什么想法?
对不起,我是java新手。常见问题。您可以创建一个标志isAPICall。在侦听器中将其设置为true,并检入另一个侦听器以忽略API调用。或者你可以在操作之前删除侦听器,并在操作之后读取。对不起,我仍然不明白侦听器是什么。还是很新手:你能进一步解释一下吗。谢谢您的回复。顺便说一句:d听众已添加到您的jcombobox中。你可以删除它并在操作完成后读取。现在我明白了。谢谢,先生