Swing focusGained öffnet sich zwei mal

Basti90

Mitglied
Hallo Zusammen,
ich habe ein Problem das sich im ersten Moment Trivial anhört leider komme ich ich trotz Stundenlanger recherche im Internet nicht zu einer akzeptablen Lösung.

Erstmal was ich haben will:
ganz einfach zwei Felder ein Textfeld ein Passwortfeld. Wenn ein Feld den Focus erhält soll eine Bildschirmtastatur für die Eingabe erscheinen (für einen Touchscreen Genauere Hintergründe sind unwichtig). Wenn der Benutzername eingegeben wurde soll automatisch das Passwortfeld den Focus erhalten und eine neue Bildschirmtastatur aufrufen.
Soweit so gut. Hier mein ansatz (vereinfach natürlich)
Java:
JTextfield txt = new JTextfield();
JPasswortfield pw=new JTextfield();

txt.addFocusListener(new FocusListener){
     @Override
      public void focusLost(FocusEvent arg0) {
				pw.requestFocusInWindow();
			}
			
	@Override
	public void focusGained(FocusEvent arg0) {
		new Bildschirmtastatur();//eigenes JFrame
						
			}
	});
pw.addFocusListener(new FocusListener){
     @Override
      public void focusLost(FocusEvent arg0) {
				
			}
			
	@Override
	public void focusGained(FocusEvent arg0) {
		new Bildschirmtastatur();//eigenes JFrame
						
			}
	});

Der Ansatz hat mehrere Probleme:
-zum einen wird wird txt sofort fokusiert (kann auch so bleiben)
-dann wird erwartungsgemäß die Tastatur für txt geöffnet - aber zugleich auch die Tastatur von pw
- nach bestätitgen der txt eingabe wird es übernommen jedoch wird sofort eine neue Tastatur aufgerufen - jedoch nur nach dem ersten mal (also zwei aufrufe danach läuft es wie es soll (der teil))
(hier hatte ich schon den einfall einfach nen boolean zu machen und den zu speeren sobald er einmal offen war jedoch macht diese Varianete Korrekturen unmöglich)
- bei der pwtastatur gibt es noch das problem sie lässt sich nicht schließen, bzw erscheint sofort wieder(ausgelöst dadurch das der Focus bleibt hier habe ich schon requestFocus(false) probiert was 1000x Tastaturen öffnet)


Ich hoffe ihr habt mein anliegen und mein Problem verstanden und könnt mir Helfen.
Auf jeden fall schon mal vielen Dank im Vorraus
 

kaoZ

Top Contributor
Hab es jetzt nur überflogen ,aber soweit ich weiß werden immer 2 Events ausgelöst, nämlich focus gainded und focus lost,

ok , ich versuchs mal zu erläutern

-zum einen wird wird txt sofort fokusiert (kann auch so bleiben)

txt wird sicher der erste container in dem Layout sein ?

dann kannst du es unterbinden in dem du entweder , einen Leeren Container implementierst, und diesem den Focus zuweist, oder allgemein den Focus mit
Code:
.setFocusable(boolean value);
auf false setzt.
Dann wiederrum musst du aber einem anderem Element den Focus zuweisen.

requestFocus(false); wäre hier die Falsche wahl da du Zwar den Focus nimmst, aber keinem anderen Element diese zuweist, daraus resultiert dann das der das erste Fokussierbare Element diesen Erhält, ergo
trotzdem der Focus auf diesem Feld liegt.

Du meinst also wenn du in dein Textfeld etwas eingeben möchtest werden direkt beide Tastaturen geöffnet ?

public void focusLost(FocusEvent arg0) {
pw.requestFocusInWindow();
}

durch diesen Aufruf erhält doch pw sofort nach verlassen wieder den Focus wenn ich mich nicht irre, daraus resultiert dann folgender Aufruf
Java:
  @Override
    public void focusGained(FocusEvent arg0) {
        new Bildschirmtastatur();//eigenes JFrame
                        
            }

also wird auch jedesmal wenn txt den focus verliert eine neue Tastatur geöffnet da pw sofort den focus erhält.

ich meine das Prinzip ist schon einleuchtend, wenn txt den focus verliert soll pw den Focus erhalten, und demnach die spezifizierte Tastatur aufgerufen werden,

[EDIT]allerdings verwendest du so wie es aussieht die gleiche Tastatur für txt und pw, warum lässt du diese nicht einfach offen und setzt nur den focus in das passwortfeld ?
Zudem , schließt du die Tastatur die du öffnest insofern txt focus erhält nirgends und öffnest umgehend eine neue :)
[/EDIT]
 
Zuletzt bearbeitet:

Basti90

Mitglied
Das ist zum Teil eine Erklärung warum es sich so verhält. leider bringt es mich kaum näher an eine vernüftige lösung.
Die Frage ist wie bekomme ich die Passworttastatur dazu sich erst zu öffnen wenn sie es soll
zum Edit-
es sind zwei verschiedene JFrames(Muss weil eins ja ein Passwortfeld ist ->kein klartext) ich wollte nur der einfachheithalber nicht alles mit Konstruktor usw. schreiben da es glaub ich nicht wichtig ist für die lösung.
 

Basti90

Mitglied
Ich hab mir nochmal durchgelesen was geschrieben wurde:
es könnte zu nem missverständiskommen und zwar wird die Tastatur von txt und zusätzlich dazu die von pw - klickt man die von txt weg oder klickt auf ok(was intern das gleiche ist in etwa) erscheint wieder eine Tastatur von txt - das passiert genau 2 mal was mir ein rätsel ist denn würde es öfter passieren würde ich vermuten die Tastatur lenkt den focus auf txt oder so - warum ist das so - und viel wichtiger wie stell ich das ab
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Tastatur Shortcut auslösen bei FocusGained-Event AWT, Swing, JavaFX & SWT 2
T Gui öffnet nicht AWT, Swing, JavaFX & SWT 2
O showConfirmDialog öffnet sich nicht AWT, Swing, JavaFX & SWT 3
S JavaFX Scene öffnet sich nicht AWT, Swing, JavaFX & SWT 3
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
J *.jar öffnet PDF-Datei nicht AWT, Swing, JavaFX & SWT 35
T Frame öffnet nicht AWT, Swing, JavaFX & SWT 1
B Hauptfenster öffnet sich mehrmals AWT, Swing, JavaFX & SWT 9
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
K Java Button öffnet neues Fenster AWT, Swing, JavaFX & SWT 5
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
A Swing JFrame öffnet nicht vollständig AWT, Swing, JavaFX & SWT 1
W Swing JFrame Parent öffnet Child AWT, Swing, JavaFX & SWT 1
S JFileChooser öffnet den falschen Ordner AWT, Swing, JavaFX & SWT 4
Helgon JFileChooser öffnet sich 2x AWT, Swing, JavaFX & SWT 12
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
U Frame öffnet anderes Frame: Methode auslagern AWT, Swing, JavaFX & SWT 26
L 2 Monitore, Fenster öffnet sich im falschen Monitor AWT, Swing, JavaFX & SWT 3
J JFileChooser öffnet sich in manchen Fällen extrem langsam! AWT, Swing, JavaFX & SWT 12
D Aufgeführte jar-Datei, JDialog öffnet sich nicht AWT, Swing, JavaFX & SWT 13
B DateComboBox öffnet sich hinter JTextarea. AWT, Swing, JavaFX & SWT 10
G PrintJob öffnet sich auf manchen PCs nicht AWT, Swing, JavaFX & SWT 5
L F10 Taste öffnet das Menü AWT, Swing, JavaFX & SWT 7
M JComboBox Popup öffnet nicht AWT, Swing, JavaFX & SWT 6
J JList - doppelklick auf item -> neues fenster öffnet sich AWT, Swing, JavaFX & SWT 2
Juelin Javafx hängt sich auf AWT, Swing, JavaFX & SWT 31
I JavaFX Programmcode pausieren gestaltet sich als schwierig AWT, Swing, JavaFX & SWT 7
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
S e(fx)clipse erscheint nicht im Marketplace, lässt sich nicht installieren AWT, Swing, JavaFX & SWT 16
A TableView updatet sich nicht AWT, Swing, JavaFX & SWT 3
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
R JOptionPane schließt sich nicht wieder AWT, Swing, JavaFX & SWT 2
R Textfield lässt sich nicht positionieren AWT, Swing, JavaFX & SWT 1
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
K JavaFX Fenstergröße ändert sich (Gluon - SceneBuilder) AWT, Swing, JavaFX & SWT 23
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
J ChangeListener verhält sich komisch AWT, Swing, JavaFX & SWT 14
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
P Gui lässt sich nicht starten AWT, Swing, JavaFX & SWT 10
B JavaFX setOnMousePressed() - verhält sich wie setOnMouseClicked()? AWT, Swing, JavaFX & SWT 6
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
M 2D-Grafik Spielfigur bewegt sich nicht AWT, Swing, JavaFX & SWT 6
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
K JavFX: VBox.setVGrow stell sich quer AWT, Swing, JavaFX & SWT 2
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
S Swing Bedienelemente ordnen sich automatisch neu an AWT, Swing, JavaFX & SWT 2
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
E Java FX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 8
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 16
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
Prafy Sich ändernde Farbverläufe erstellen AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
J Lohnt sich FX? AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 2
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Server stellt sich hin AWT, Swing, JavaFX & SWT 13
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
ToBJo JavaFX TreeView zerstört sich selbst AWT, Swing, JavaFX & SWT 1
T Swing Button bleibt grau [=> UI hat sich aufgehängt, Aufgabe in Thread auslagern] AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
M JXTreeTable: Spaltengröße läßt sich nicht mehr festlegen AWT, Swing, JavaFX & SWT 0
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
H 2D-Grafik BufferStrategy zieht spur hinter sich her AWT, Swing, JavaFX & SWT 3
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
kaoZ Swing JFrame lässt sich nicht über dispose() abbauen AWT, Swing, JavaFX & SWT 0
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A Panel lässt sich nicht bewegen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben