Auswahl in JComboBox abbrechen

Status
Nicht offen für weitere Antworten.

hupfdule

Top Contributor
Hi,

was ich suche, ist eine Möglichkeit bei Auswahl eines Items in einer JComboBox zu entscheiden, ob diese Auswahl gültig ist. Wenn sie das nicht ist, soll sich das ausgewählte Item nicht ändern. Über einen ItemListener kann ich zwar auf die Auswahl reagieren, jedoch kann ich sie nicht verhindern. Das ist etwas unschön, da ich mir dafür merken müsste, was zuvor für ein Item ausgewählt war und bei einem Rücksetzen mit setSelectedItem() wiederum ein Event gefeuert wird. Gibt es einen eleganteren Weg das zu erreichen?
 
S

SlaterB

Gast
verwende ein eigenes Model und überschreibe die setSelectedIdem-Operation,
bisher sieht sie z.B. in DefaultComboBoxModel so aus:

Code:
public void setSelectedItem(Object anObject) {
        if ((selectedObject != null && !selectedObject.equals( anObject )) ||
	    selectedObject == null && anObject != null) {
	    selectedObject = anObject;
	    fireContentsChanged(this, -1, -1);
        }
    }
 

hupfdule

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Ja, ungültige Elemente gar nicht erst anzeigen ;) .
Und ich wollt's noch dazu schreiben. ;-) Nein, nicht anzeigen ist keine Alternative. Alle Werte sollen immer in der ComboBox enthalten sein. Erst bei Auswahl soll geprüft werden.

SlaterB hat gesagt.:
verwende ein eigenes Model und überschreibe die setSelectedIdem-Operation
Hmm, bin mir noch nicht im Klaren, inwiefern mir das hilft. Auch da habe ich ja dann keine Unterscheidung, ob das setSelectedItem() vom Benutzer oder vom Programm ausgeführt wurde. Genau das bräuchte ich aber doch. Oder überseh ich grad was?

EDIT: Ah, jetzt kapier ich. Kann die Prüfung natürlich von dort aus anstoßen. Find ich zwar etwas häßlich, dass das Model dann dafür zuständig ist, aber wenn's nicht anders geht. :)
Danke dir für den Tipp.
 
S

SlaterB

Gast
> Auch da habe ich ja dann keine Unterscheidung, ob das setSelectedItem() vom Benutzer oder vom Programm ausgeführt wurde.

das erwähnst du gerade zum ersten Mal, wie soll ich darauf schon vorher eingehen? ;)

so, und was hat die Quelle (Programm oder User) mit dem Test auf gültiger Auswahl zu tun?
das sind doch verschiedene Fragestellungen,

wenn du das jedenfalls im Model unterscheiden willst, dann wäre eine einfachere wenig saubere Möglichkeit,
vom Programm aus nie setSelectedIdem() zu benutzen, sondern eine andere Operation, z.B. setSelectedIdemProgram()
 

hupfdule

Top Contributor
SlaterB hat gesagt.:
> Auch da habe ich ja dann keine Unterscheidung, ob das setSelectedItem() vom Benutzer oder vom Programm ausgeführt wurde.

das erwähnst du gerade zum ersten Mal, wie soll ich darauf schon vorher eingehen? ;)
Ähm, ja. Hätt ich erwähnen können, dass nur die Benutzerauswahl relevant ist. ;-)


so, und was hat die Quelle (Programm oder User) mit dem Test auf gültiger Auswahl zu tun?
Meine Gedankengänge waren etwas verquer. Ich war gedanklich noch dabei, dass ich die Auswahl per Programm zurücksetze, wodurch ja wiederum ein Event gefeuert würde, den ich von dem benutzergenerierten Event unterscheiden müsste. Da ich aber die Auswahl schon bei setSelectedItem() abbreche, habe ich dieses Problem natürlich gar nicht. :)

wenn du das jedenfalls im Model unterscheiden willst,
Wirklich wollen tu ich das nicht. Das sollte eigentlich schon der Controller entscheiden. Aber dann kriegt das Model halt ne Referenz auf den Controller und fragt ihn, ob es die Auswahl vornehmen darf. Das ist auch ok.

dann wäre eine einfachere wenig saubere Möglichkeit,
vom Programm aus nie setSelectedIdem() zu benutzen, sondern eine andere Operation, z.B. setSelectedIdemProgram()
Wäre auch möglich, aber bei deiner Lösung eigentlich unnötig. Da ich den Auswahlvorgang ja so abbrechen kann, brauch ich keine Unterscheidung zwischen benutzergesteuert und programmgesteuert machen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
M JComboBox Item-Auswahl in JTable AWT, Swing, JavaFX & SWT 2
G JComboBox mit CellRenderer (Auswahl) AWT, Swing, JavaFX & SWT 11
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
P Swing Auswahl einer JComboBox für eine andere JComboBox übernehmen AWT, Swing, JavaFX & SWT 4
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
U JComboBox: (Vor)auswahl nach Aktualisierung AWT, Swing, JavaFX & SWT 2
E JComboBox auswahl einschraenken AWT, Swing, JavaFX & SWT 5
M JTable mit JCombobox eigene Auswahl pro Zeile ? AWT, Swing, JavaFX & SWT 3
G JComboBox nimmt Auswahl nicht an AWT, Swing, JavaFX & SWT 5
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
R Auswahl mehrerer JComboBoxen verknüpfne AWT, Swing, JavaFX & SWT 17
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
S n aus m - Auswahl AWT, Swing, JavaFX & SWT 2
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
F JavaFX ChoiceBox Name als Auswahl bei einer Objektliste AWT, Swing, JavaFX & SWT 4
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
J AWT choice mit viel Auswahl aktualisiert sich nicht korrekt beim scrollen?! AWT, Swing, JavaFX & SWT 3
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
M SWT Wie mehr als 5000 Einträge zur Auswahl geben? AWT, Swing, JavaFX & SWT 9
E JTree Auswahl AWT, Swing, JavaFX & SWT 2
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
T Auswahl in GUI-Builder mit Grafiken ausstatten AWT, Swing, JavaFX & SWT 4
M Swing jList Auswahl löschen AWT, Swing, JavaFX & SWT 2
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
P Speichern und Auswahl gezeichneter Objekte AWT, Swing, JavaFX & SWT 7
K Auswahl einer ButtonGroup erfahren AWT, Swing, JavaFX & SWT 3
G JTextfield Inhalt markieren bei Auswahl AWT, Swing, JavaFX & SWT 2
K Choice auswahl und String in Int AWT, Swing, JavaFX & SWT 8
DEvent Standard Font-Auswahl-Dialog? AWT, Swing, JavaFX & SWT 15
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
B Relative Pfadangaben beibehalten bei Auswahl in Dialog AWT, Swing, JavaFX & SWT 2
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
M Farb/bild auswahl AWT, Swing, JavaFX & SWT 15
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
R Verzeichnis-Auswahl mit FileDialog ? AWT, Swing, JavaFX & SWT 3
N JList: Auswahl erzwingen AWT, Swing, JavaFX & SWT 6
H Doppelte Auswahl bei ItemEvent für eine Dropdownliste AWT, Swing, JavaFX & SWT 5
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
R JComboBox abfragen AWT, Swing, JavaFX & SWT 1
Esquid If Befehl bei JComboBox AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
D JComboBox Strings aus JTextFields zuordnen AWT, Swing, JavaFX & SWT 2
F JComboBox und Model AWT, Swing, JavaFX & SWT 10
I Editierbare JComboBox, die nur Ganzzahlen als Eingabewerte zulässt AWT, Swing, JavaFX & SWT 3
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
D Swing JCombobox Weiße Leerzeilen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JComboBox und Einträge AWT, Swing, JavaFX & SWT 3
gamillton Swing JComboBox mit extra Inhalt + breiteres Popupmenü AWT, Swing, JavaFX & SWT 0
T JPanelsteuerung mit JComboBox AWT, Swing, JavaFX & SWT 5
N Swing Duplikate im Jcombobox vermeiden AWT, Swing, JavaFX & SWT 15
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
C JComboBox Objecte übergeben und Eintrag auswählen AWT, Swing, JavaFX & SWT 3
M Swing JComboBox mit Laufwerksbuchstaben (Windows) AWT, Swing, JavaFX & SWT 6
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
Sin137 JComboBox mit Generics AWT, Swing, JavaFX & SWT 14
R JComboBox erweitern AWT, Swing, JavaFX & SWT 5
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
V Editierbare JComboBox AWT, Swing, JavaFX & SWT 2
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
F Swing Jcombobox mit manueller Rückgabe AWT, Swing, JavaFX & SWT 4
W JComboBox auffristen nach Listenänderung AWT, Swing, JavaFX & SWT 20
S JComboBox mit mehreren Spalten? AWT, Swing, JavaFX & SWT 6
J JComboBox + ItemListener AWT, Swing, JavaFX & SWT 12
T Swing jComboBox auslesen mit Datenbankanbindung AWT, Swing, JavaFX & SWT 3
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben