Swing Focus Listener bei PComboBox von pswing Erweiterung

Status
Nicht offen für weitere Antworten.

Iceman007

Mitglied
Hallo zusammen,

ich benutze in meiner GUI die JComboBox Erweiterung PComboBox, welche in der Java Swing Componentenen Libary enthalten ist. Die API dieser Erweiterung und Demos findet man unter PSwing Java Swing Components .

Hier ist für die PComboBox ein PComboFocusListener beschrieben, der vom FocusListener erbt, also auch die funktionen focusGained und focusLost verwendet. Nur benötigt der PComboFocusListener einen FullWordComboKeySelectionModel, wo ich auch nicht kapiere was er macht.

Nun mein Problem, ich benötige ein Listener, der mir erkennt, wann das Objekt den Focus bekommt, um alle meine PComboBoxen zu aktualisieren beim Verlust des Focus. Derzeit passiert jedoch gar nichts, mache derzeit auch nur eine Textausgabe.

Nun zu meinem Code:

Java:
veranstaltungsDozentComboBox = new PComboBox(DB_GUI_neueBuchung
				.gibEintraege("dozent"));
		veranstaltungsDozentComboBox.setAllowNewEntries(true);
		veranstaltungsDozentComboBox.setPreferredSize(new Dimension(200, 18));
		veranstaltungsDozentComboBox.buildIndex();
		
		PComboFocusListener pcomboFL = new PComboFocusListener(new FullWordComboKeySelectionModel(veranstaltungsDozentComboBox)){
			public void focusGained(java.awt.event.FocusEvent arg0) {
				System.out.println("Neuer Eintrag in Dozent ComboBox focusgained");
			}
			public void focusLost(java.awt.event.FocusEvent arg0) {
				System.out.println("Neuer Eintrag in Dozent ComboBox focuslost");
			}
		};

Also gehe davon aus dass ich irgend ein Fehler bei der Implementierung gemacht habe. Weiß auch nicht ob ich den pcomboFL noch adden muss, hatte es zwar versucht, hat aber auch nichts genützt.

Danke schonmal für eure Hilfe.
 

Ebenius

Top Contributor
Ich hab direkt keine Ahnung. Aber vielleicht hilft es Dir, einfach einen InputVerifier auf die JComboBox zu werfen, der die Aktion ausführt und dann true zurück gibt.

Ebenius
 

Iceman007

Mitglied
Danke für die Antwort, aber ich glaube der InputVerifier funktioniert bei der PComboBox nicht, genau wie der FocusListener. Müsste schon explizit wissen, bzw verstehen wie der PComboFocusListener funktioniert.
Ich verstehe aber an der Stelle auch nicht wie der InputVerifier funktioniert. Bin leider nicht so bewandt in mit Java Swing.
 

Ebenius

Top Contributor
InputVerifier (so vorhanden) wird immer gefragt, wenn eine Komponente ihren Focus verliert. Wenn der InputVerifier etwas dagegen hat, gibt er false zurück und dann wird der Fokus nicht transferiert.

Da die besagte Komponente auf Swing aufsetzt, würde ich erwarten, dass sie sich wie eine Swing-Komponente verhält. Mehr zum Thema Fokus: Sun Java™ Tutorial: Validating Input.

Kann es sein, dass Du etwas ganz anderes falsch machst; zum Beispiel die Komponente initialisierst, den Listener draufpackst und dann eine andere Instanz erzeugst und diese hinzufügst? Manchmal passieren solche Dinge... Ansonsten: Benutz doch einen Debugger und schau nach was passiert.

Ebenius
 

Iceman007

Mitglied
Kann schon sein dass ich was ganz anderes falsch mache, dass weiß ich ja eben nicht, hatte gehofft hier eine Antwort zu finden.
Und zu dem InputVerifier, mir ist es doch egal ob es eine gültige oder falsche Eingabe ist, hauptsache halt überhaupt eine Eingabe. Und laut der API vom pswing, sollte es ja nicht so schwierig sein den PComboFocusListener zu verwenden.
 
G

Gast2

Gast
Hast du den Listener überhaupt deiner Komponente hinzugefügt?
 

Iceman007

Mitglied
Sicherlich habe ich das auch versucht, nur übergebe ich die Komponente ja schon oben dem FullWordComboKeySelectionModel so dass ich mir nicht sicher bin ob ich die Komponente überhaupt noch hinzufügen muss.
Wie gesagt, kann mit dem FullWordComboKeySelectionMode und der PComboBox nichts anfangen. Werde mir wohl etwas selber schreiben müssen und die PComboBox rauswerfen.
 

Iceman007

Mitglied
Hallo zusammen,

ich kam heute durch Zufall selbst auf die Lösung und möchte sie hier nochmal kurz veröffentlichen, damit andere auch etwas davon haben.

Und zwar bietet die PComboBox eine Methode getTextField() und auf diese kann man dann den FocusListener anwenden. Im Java Code sieht das dann folgendermassen aus:

Java:
veranstaltungsDozentComboBox = new PComboBox(DB_GUI_neueBuchung
                .gibEintraege("dozent"));
        veranstaltungsDozentComboBox.setAllowNewEntries(true);
        veranstaltungsDozentComboBox.setPreferredSize(new Dimension(200, 18));
        veranstaltungsDozentComboBox.buildIndex();
        
        veranstaltungsDozentComboBox.getTextField().addFocusListener( new FocusListener(){
            public void focusGained(java.awt.event.FocusEvent arg0) {
                System.out.println("Neuer Eintrag in Dozent ComboBox focusgained");
            }
            public void focusLost(java.awt.event.FocusEvent arg0) {
                System.out.println("Neuer Eintrag in Dozent ComboBox focuslost");
            }
        };

Was mir auch aufgefallen ist, der FocusListener funktioniert bei einer normalen JComboBox auch nicht wenn setEditable(true) ist, weiß ich aber auch nicht woran das liegt, evtl kann dazu nochmal jemand was schreiben.

Hoffe mein Beitrag hilft noch jemanden irgendwann mal.

Danke trotzdem für die Hilfestellungen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JavaFX Focus Listener für gesamte Scene AWT, Swing, JavaFX & SWT 1
E Focus auf titledborder AWT, Swing, JavaFX & SWT 8
B JavaFX TextInputDialog: Focus auf Eingabefeldinhalt setzen und nach OK Inhalt leeren AWT, Swing, JavaFX & SWT 5
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
xYurisha Gui Focus von JTextField weglenken AWT, Swing, JavaFX & SWT 6
O Focus zwischen Chat und Spiel wechselns AWT, Swing, JavaFX & SWT 3
T bekomme keinen Focus auf JTextField AWT, Swing, JavaFX & SWT 3
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
C JOptionPane.showConfirmDialog() -> Focus auf NEIN -> Enter gibt YES_OPTION zurück AWT, Swing, JavaFX & SWT 6
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
B Swing JTextfeld bekommt nur jedes Zweite mal Focus AWT, Swing, JavaFX & SWT 11
E JTextPane Focus AWT, Swing, JavaFX & SWT 1
D ComboBoxCellEditor Refresh beim Focus AWT, Swing, JavaFX & SWT 4
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
A Focus Problem AWT, Swing, JavaFX & SWT 4
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
A Swing Focus auf gemalte Component AWT, Swing, JavaFX & SWT 5
H Swing JTextField in JWindow, JWindow bekommt focus zurück? AWT, Swing, JavaFX & SWT 9
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
M focus subFrame AWT, Swing, JavaFX & SWT 3
G Force Focus für JButton AWT, Swing, JavaFX & SWT 2
lumo SWT Composite Focus AWT, Swing, JavaFX & SWT 2
T disabled Checkbox soll trotzdem Focus bekommen AWT, Swing, JavaFX & SWT 9
C Swing Focus Management AWT, Swing, JavaFX & SWT 3
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
H Swing Focus bekommen AWT, Swing, JavaFX & SWT 4
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
Screen Focus Problem , KeyListener, TextField , Key AWT, Swing, JavaFX & SWT 4
L AWT Focus auf Fenster setzen AWT, Swing, JavaFX & SWT 4
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
L Swing Input Focus eines JTextFields in einer JList AWT, Swing, JavaFX & SWT 2
A Focus in JTable Cell AWT, Swing, JavaFX & SWT 3
A Focus für JApplet AWT, Swing, JavaFX & SWT 7
R Focus ermitteln AWT, Swing, JavaFX & SWT 2
C JTable Focus Handling AWT, Swing, JavaFX & SWT 2
Nitram Swing Focus im JFrame AWT, Swing, JavaFX & SWT 10
V Swing Problem mit Focus setzen AWT, Swing, JavaFX & SWT 7
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
S Versuch den Focus zu klauen detektieren? AWT, Swing, JavaFX & SWT 14
SebSnake JFrame "Focus" erzwingen (wie JOptionPane) AWT, Swing, JavaFX & SWT 3
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
L Focus für KeyListener auf verschiedene Panels AWT, Swing, JavaFX & SWT 2
O Focus im GBL steuern. AWT, Swing, JavaFX & SWT 3
K Focus an das JPanel übergeben AWT, Swing, JavaFX & SWT 2
K Focus-Problem AWT, Swing, JavaFX & SWT 9
O TextBoxen Focus über Pfeiltasten steuern AWT, Swing, JavaFX & SWT 3
G Problene mt Focus unter Swing AWT, Swing, JavaFX & SWT 7
G JTable und Focus AWT, Swing, JavaFX & SWT 30
D Beim Starten ein JTextfield Focus geben AWT, Swing, JavaFX & SWT 7
J JTextPane bekommt keinen Focus! AWT, Swing, JavaFX & SWT 3
P TextFeld Focus entfernen AWT, Swing, JavaFX & SWT 2
F Problem mit Actions, TextComponents und Focus AWT, Swing, JavaFX & SWT 2
K Focus mit Mouseclick auf JPanel setzen AWT, Swing, JavaFX & SWT 4
D Focus auf JPanel setzen AWT, Swing, JavaFX & SWT 2
B JTable - Focus - TabTaste AWT, Swing, JavaFX & SWT 2
D Focus in bestimmter Celle in JTable AWT, Swing, JavaFX & SWT 3
B Komponente in JTable bekommt keinen Focus AWT, Swing, JavaFX & SWT 3
M Focus beim öffnen eines neuen JFrames AWT, Swing, JavaFX & SWT 6
O JTextField- Selection / Focus bei nicht editierbaren Feldern AWT, Swing, JavaFX & SWT 2
J Focus auf JFrame AWT, Swing, JavaFX & SWT 3
B Focus für Textfeld AWT, Swing, JavaFX & SWT 5
B im JTree Focus setzen und navigieren AWT, Swing, JavaFX & SWT 3
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
D JTable: Focus auf Zelle markiert ihren Text zum editieren AWT, Swing, JavaFX & SWT 2
C Komponente mit Focus bevor JButton-Klick merken. AWT, Swing, JavaFX & SWT 6
L Focus setzen AWT, Swing, JavaFX & SWT 3
G JTabbedPane, Focus, ChangeListener AWT, Swing, JavaFX & SWT 1
B Focus in JOptionPane AWT, Swing, JavaFX & SWT 2
J Focus-Problem bei Vollbildmodus AWT, Swing, JavaFX & SWT 7
A Combobox Focus-Events, Tab in Tabelle AWT, Swing, JavaFX & SWT 7
F Fenster in den Vordergrund aber nicht im Focus AWT, Swing, JavaFX & SWT 21
O Abfrage ob eine bstimmte Komponente den Focus hat AWT, Swing, JavaFX & SWT 4
T JTable Focus auf Zelle setzen AWT, Swing, JavaFX & SWT 3
R Focus durch "tabben" von JTable Zelle auf andere K AWT, Swing, JavaFX & SWT 8
R Focus speeren AWT, Swing, JavaFX & SWT 2
K JList - merkwürdiges Verhalten bei Leertaste (unter Focus) AWT, Swing, JavaFX & SWT 7
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V JTextField Focus Cursor setzen AWT, Swing, JavaFX & SWT 2
D jcolorchooser - lost focus AWT, Swing, JavaFX & SWT 2
R Focus auf bereits geöffnetes Fenster setzen AWT, Swing, JavaFX & SWT 9
O Welche Möglichkeit zum Focus setzen! AWT, Swing, JavaFX & SWT 2
R JMenu copy Focus-Problem AWT, Swing, JavaFX & SWT 2
M Focus einstellen AWT, Swing, JavaFX & SWT 3
G Focus so setzen, daß in einer jTextArea der Cursor blinkt AWT, Swing, JavaFX & SWT 7
G JTable: Rahmen bei Focus um Zelle AWT, Swing, JavaFX & SWT 2
thE_29 Modaler Dialog - close on not focus AWT, Swing, JavaFX & SWT 3
P Focus auf JFrame AWT, Swing, JavaFX & SWT 5
G JOptionPane verliert Focus AWT, Swing, JavaFX & SWT 3
A JTree Problem mit Focus bzw. Selection AWT, Swing, JavaFX & SWT 5
C Focus setzen AWT, Swing, JavaFX & SWT 2
G JTree Focus setzen AWT, Swing, JavaFX & SWT 2
F HILFE!!! Focus-Probleme bei unterschiedlichen Panel's AWT, Swing, JavaFX & SWT 3
padde479 MenuItem MouseEvent/-Listener AWT, Swing, JavaFX & SWT 5
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37

Ähnliche Java Themen

Neue Themen


Oben