Ich habe ein JComboBox-Array bestehend aus insgesammt 6 JComboBox-Objekten. Ein ItemListener überwacht alle Objekte, und soll, wenn in einem der JComboBox-Objekten ein anderes Element ausgesucht wird, das entsprechende Objekt eindeutig zurückgeben.
So werden die Boxen in einer Schleife erstellt.
Mein Listener sah bisher so aus:
Code:
spieler[i] = new JComboBox();
spieler[i].addItem("Mensch");
spieler[i].addItem("Computer");
spieler[i].addItemListener(this);
So werden die Boxen in einer Schleife erstellt.
Mein Listener sah bisher so aus:
Code:
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() != e.SELECTED)
return;
Object obj = e.getItem();
String nummer = e.getSource().toString();
int x = 0;
for (int l = 18; l < 38; l++){
x += nummer.toCharArray()[l];
}
// Bisher war es so, dass ich vom e.getSource()-String die Chars 18-38 addiert habe.
// Dort stehen ja u.A. auch die Koordinaten der Objekte drin. Es würde so auch fast klappen,
// nur 3 der Objekte haben nun den gleichen Wert (wegen Symmetrie bei Koords).
int i = sucheObj(x);
// sucheObj(x) ist eine einfache switch(x) Methode, die mir zu den einzelnen X-Werten den passenden
// spieler[]-Index zurückgab (aber umständlich und unsicher - glaube ich)...
System.out.println("Objekt: spieler["+i+"]");
}