Я пытаюсь связать ComboBoxes
. Например, у меня есть три сборника, и каждый из них имеет три элемента (a, b, c). В начале в первом поле со списком «а» выбирается во втором «b» и «c» в третьем. Мне нужно сделать для них ActionListener
, который работает следующим образом: если выбор изменения во втором списке от «b» до «a», в первом списке выбранный элемент автоматически изменяется с «a» на «b».Связанные ComboBoxes
Я попытался решить эту проблему таким образом:
public class MyComboBoxListener implements ActionListener {
public void actionPerformed(ActionEvent a) {
int i = 0;
int j = 0;
while (a.getSource() != valsListArray.get(i)) {
i++;
}
String selected = valsListArray.get(i).getSelectedItem().toString();
while (selected != valsListArray.get(j).getSelectedItem() && j != i) {
j++;
}
String r = chosenVals[i];// in the beginnig elements are that order a, b, c
valsListArray.get(j).setSelectedItem(chosenVals[i]);
chosenVals[j] = r;
chosenVals[i] = selected;
}
}
, но это не решает проблему.
Это похоже на необычный и необычный пользовательский компонент - вполне возможно, непригодным для использования. Кажется, что «JList» с Drag'n'Drop может быть лучшим способом. Что такое b & c? В чем смысл «взаимоисключающих» комбо? –