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)
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
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