Java JComboBox itemstatechanged事件

Java 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

我有两个JComboxes 当我从第一个jComboBox中选择一个ID时,我需要它 第二个jComboBox将自动选择与第一个jComboBox中选择的索引相同的索引

我已经使用此代码成功地实现了第一个jcombobox的itemstatechanged

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中。你可以删除它并在操作完成后读取。现在我明白了。谢谢,先生