Tastaturunterschiede auf dem Laptop?

Status
Nicht offen für weitere Antworten.

Lucky Luc

Mitglied
Hallo!

Ich arbeite zur Zeit am Laptop und möchte ein kleines Applet machen, für das ich auch Tastatureingaben brauche. Eigentlich will ich die Cursortasten benutzen. Ich benutze einen EventHandler, also KeyAdapter, aber Event.UP usw. funktioniert nicht.

Ich habe den Versuch gestartet, jedesmal, wenn eine Taste gedrückt wird, ihren Wert anzuzeigen. Funktioniert auch prima, aber wenn ich eine der Cursortasten - oder auch manche anderen Tasten - drücke, kommt der gleiche Wert raus (irgendwas mit 60000).

Ich habe auch schon überlegt, ob es etwas mit dem Laptop zu tun hat, aber bei einem anderen, nicht von mir gemachten Applet funktioneren die Cursortasten perfekt.

Habt ihr eine Idee woran das liegen könnte? Schon mal danke im Voraus.
 

thE_29

Top Contributor
Es kommt 65535 raus und das nur, weil man Funktionstasten net mit getKeyChar() gut abfangen kann, sondern mit getKeyCode() == KeyEvent.VK_DOWN/UP/blablabla!
 

cam

Bekanntes Mitglied
Hallo,

ich habe meine Funktionstasten im Startmenü folgendermaßen belegt:

Code:
Action wiedEinl = new AbstractAction () {

    public void actionPerformed(ActionEvent arg0) {
       	start1.setVisible(false);
       	mask3.setVisible(true);
       	WiederEinlagern.wiederEinlagern();
    }
};
start1.setInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,start1.getInputMap());
start1.getInputMap().put(KeyStroke.getKeyStroke("F2"), "wiedEinl");
start1.getActionMap().put("wiedEinl", wiedEinl);

Nun belege ich die F2-Taste in mask3 neu.
Wenn ich nun das Programm ausführe, geht, so lange ich die F2-Taste gedrückt halte, mask2 auf. Sobald ich F2 aber loslasse, erscheint wieder das Hauptmenü (F2 ist in mask3 mit Abbruch, d.h. gehe zurück auf Hauptmenü, belegt.)

Ich gehe davon aus, dass die Funktion von F2 in mask3 sofort nach dem Start der Maske aufgerufen wird und dadurch die Maske auch gleich wieder beendet.

Ähnlich ist es mit F1 und mask2. Also mit F1 rufe ich mask2 auf und dort ist F1 mit "Weiter" belegt, wo ich aber abprüfe, ob überhaupt etwas in das TextField geschrieben wurde und wenn nicht, eine Fehlermeldung erscheint - diese Fehlermeldung erscheint, sobald mask2 geöffnet wurde.

Eigentlich wollte ich fragen, wie ich die Belegung wieder lösche, aber während ich das hier so aufgeschrieben habe, ist mir aufgefallen, dass das ja eigentlich gar nichts damit zu tun hat.
Aber ich weiß nicht, wie ich das Problem beheben kann, da mir die Tastenbelegung so vorgeschrieben ist.[/code]
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben