Probleme mit JComboBox

Hallo zusammen :smiley:
Ich schreibe momentan an einer wissenschaftlichen Arbeit, deren Erkenntnisse ich mit einer Simulation verdeutlichen will. Momentan sitze ich am GUI für diese Simulation vorstellen (entschuldigt, meine Java-Kenntnisse sind eher unteres Mittelmaß^^, ich geh in die 11. Klasse und kenn Java noch nicht lang). Folgende Stelle weist ein massives Problem auf:
Ich habe ein Fenster, in dem Ich mehrere Objekte erzeugen kann. Diese Objekte haben zahlreiche Eigenschaften, die ich über Eingabefelder einlese. Für jede Eigenschaft gibt es aber nur ein Textfeld. Über eine JComboBox kann ich das gewünschte Element anwählen, daraufhin ändern sich die Werte für das jeweilig angewählte Objekt in den Eingabefeldern, die ich dann bearbeiten kann. Dabei wird ja aber immer der Inhalt der Eingabefelder geändert. Damit die Daten nicht verloren gehen, und ich nicht extra auf einen „Speichern“-Button klicken muss, bevor ich ein anderes Element wähle, hab ich mir was ausgedacht.
Ein ActionListener wartet auf Ereignisse der ComboBox, d.h. wenn die Auswahl geändert wird, speichert er das alte Element (den Index hat er sich vorher gemerkt) in einen Vektor.
Soweit hat der Kram auch Funktioniert.
Jetzt hab ich die Sache aber erweitert, und das GUI muckt auf.
Ich habe zwei Buttons, „Löschen“ und „neues Element“. Es gibt seit der Einführung der Buttons aber nur noch Fehler, alles ein bisschen kompliziert, denn hier den Quellcode zu posten wäre irgendwie sinnlos, ich bin in dieser Fensterklasse bei fast 600 Zeilen.
Ich werde sicherlich ein paar konkrete Fragen haben, aber vielleicht erledigt sich das auch mit einer einzigen Antwort. Denn wenn ich halt Elemente lösche, ändert sich auch die ComboBox, denn das Element verschwindet auch aus der Liste. Dann springt aber die Funktion an, die nur für das ändern der Position in der ComboBox per Hand geeignet ist.
Kann ich herausfinden, was die Änderung in der ComboBox getätigt hat? d.h. kann ich wissen, ob ich das per Mausklick auf die ComboBox gemacht hab?
Wenn das nicht geht, muss ich das anders machen, aber ich hoff mal ihr könnt mir weiterhelfen^^
Vielen Dank schon im Voraus,

Ahoi! Krautinator

Interessantes Problem, wüsste jetzt auch nicht direkt, wie man das über das Event herausbekommen kann. Gibt sicher jemanden hier, der sich mit GUIs auskennt.

Pssst: Im Notfall würd ich nen Flag erstellen ‘deleteButtonPressed’ und auf das Flag im ActionListener prüfen (man muss das Flag natürlich nach jeder Abarbeitung des ActionListeners zurücksetzen). So könnte man im ActionListener herausbekommen, ob der Delete Button gedrückt wurde… ist aber irgendwie ziemlich dirty… ne vergiss das lieber wieder.

Laut Deiner Beschreibung kann ich mir das Problem mit dem Löschen-Button vorstellen. Wieso es mit dem “neues Element”-Button einen Fehler gibt, ist mir nicht recht klar.

Für das Problem mit dem Löschen-Button sollte es doch eigentlich ausreichen, im ActionListener der JComboBox zuerst zu prüfen, ob das angezeigte und zu speichernde Element noch im Modell der JComboBox drin ist. Wenn nicht, wurde es wohl gelöscht und Du musst nichts mehr speichern. Ein anderer Ansatz wäre, sich beim Löschen das selektierte Element zu merken, dann die Selektion auf ein neues Element zu ändern und erst dann das vormals selektierte Element aus der JComboBox zu löschen.

Ebenius