Event Handling Muss ich 'KeyListener' tasuend mal zufügen?

arietistv

Mitglied
Hallo,
Ich habe volgende Frage:
Ich habe die Situation, dass ich ein System hinzu fügen will, welches einfach mit den Befehlen ,,public void isKeyDown(int Key){...}" und mit ,,public ArrayList<int> getKeysDown(){...}" arbeiten will. Da ich aber bisher von Event Handling kaum Ahnung habe möchte ich nun wissen, ob es möglich ist, ohne jeder Komponente den KeyListener mit component.addKeyListener(Class c); den KeyListener hnzu fügen muss.
Also ich meine nicht, dass das Programm ALLES mit kriegen muss, sondern nur, dass der Frame aktiv sein muss. Ich möchte halt einfach, dass ich (irgendwo) einfach mit z.B. if(getKeyDown(KeyCode.VK_A)){...} ab fragen kann, ob man die Taste a gedrückt hat.
Gibts da ne möglichkeit? In Unity3D gibts diesen Befehl beispielsweise und in Java kann man ihn in Greenfoot finden.
Danke im Voraus, ArietisTV
 

Viktim

Bekanntes Mitglied
Vieleicht hilft dir die Methode :)
Java:
  public void erstelleVerhaltenFuerTaste(String key, ActionListener al) {
  ((JComponent) panel).registerKeyboardAction(al, KeyStroke.getKeyStroke(key), JComponent.WHEN_IN_FOCUSED_WINDOW);
  }

Wird so dann aufgerufen:
Java:
erstelleVerhaltenFuerTaste(KeyEvent.VK_A, (ActionEvent e) -> methode());
 
Zuletzt bearbeitet:

arietistv

Mitglied
Danke erstamal. Aber was meinst du mit String key? Nimmt man nicht eien int bzw KeyCode?
Ich selbst hatte mir das halt so vor gestellt, dass man ein einer Klasse den Listener hat und den dann nicht zu jeder komponente hinzu fügen muss. Dann dachte ich mir, dass man in einer weiteren Klasse halt
Code:
if(isKeyDown(KeyCode.VK_A)){
    turn(15);
}
macht, z.B. wenn man mit nem Timer arbeitet.
 

arietistv

Mitglied
kannst du mir auch bitte erklären, was der Befehl (JComponent) panel).registerKeyboardAction(al, KeyStroke.getKeyStroke(key), JComponent.WHEN_IN_FOCUSED_WINDOW) bedeutet? ich habe festgestellt, dass ich am besten mit Befehlen arbeite, wenn ich sie vertehe und nicht nur abschreibe.
Danke, ArietisTV
 

Viktim

Bekanntes Mitglied
also al ist ja dein Action Listener, also in diesem Fall hier die Methode die du als ActionListener mitgibst.
dann holst du dir mit KeyStroke.getKeyStroke(key) gibt dir den KeyStroke von deiner Mitgegebenen Taste, ist also die Auslöse-Taste. Das JComponent.WHEN_IN_FOCUSED_WINDOW ist dann die Bedingung dafür, dass das Fenster fokusiert sein muss, um das Tastenkürzel auslösen zu können.
registerKeyboardAction speichert dann einfach die Action weg, also die Methode, die Taste und so :D
und der aufruf auf das Panel am anfang bringt einfach nur, dass du das nicht auf jede komponente fügen musst.

EDIT:
Funktioniert es denn bei dir?
 

arietistv

Mitglied
also wenn ich alles ans panel hinzu füge, dann ist das teil für alles hinzugefügte da. klar. aber ist dass nicht dennoch so, dass nach nem klick auf einen button dieser dann fokussiert ist?
Testen werde ichs später, arbeite derzeit noch an einem anderen Projekt. aber dennoch danke =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Muss man die ObservableList aktualisieren? AWT, Swing, JavaFX & SWT 3
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
M GUI muss updaten und neuzeichnen AWT, Swing, JavaFX & SWT 3
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
J Anonyme Klasse - Button ansprechen - Warum muss Button final sein? AWT, Swing, JavaFX & SWT 4
B Swing Passendes Layout finden: Welche Klassen muss ich wie anwenden? AWT, Swing, JavaFX & SWT 8
B JProgressBar: wie muss ich das lösen? AWT, Swing, JavaFX & SWT 4
0 Thread der im EDT ausgeführt werden muss - GUI blockieren AWT, Swing, JavaFX & SWT 5
M muss JFrame jedesmal neu aufgebaut werden? AWT, Swing, JavaFX & SWT 4
K welches package muss ich angeben um GUIs zu erstellen? AWT, Swing, JavaFX & SWT 5
D JDialog muss man immer öfters schliessen AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
B Swing KeyListener auf Container? AWT, Swing, JavaFX & SWT 1
T Event Handling KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
C Keylistener funktioniert nicht AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 2
R KeyListener in mehreren Panels AWT, Swing, JavaFX & SWT 5
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
J JLabel Visible setzen in KeyListener AWT, Swing, JavaFX & SWT 13
X KeyListener AWT, Swing, JavaFX & SWT 0
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
N KeyListener funktioniert nicht richitg AWT, Swing, JavaFX & SWT 4
Z SnakeGame Schlange per KeyListener bewegen! AWT, Swing, JavaFX & SWT 10
T KeyListener AWT, Swing, JavaFX & SWT 2
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
7 KeyListener tastatur temporär blockieren AWT, Swing, JavaFX & SWT 7
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
B SWT Problem: Wie kann man für jede TableColumn einen eigenen KeyListener registrieren. AWT, Swing, JavaFX & SWT 1
U Mouse + Keylistener AWT, Swing, JavaFX & SWT 12
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
J JWindow und keylistener AWT, Swing, JavaFX & SWT 1
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
A Swing KeyEvent mit KeyListener und KeyAdapter kürzer schreiben AWT, Swing, JavaFX & SWT 7
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
C KeyListener AWT, Swing, JavaFX & SWT 5
Doopy Event Handling KeyListener funktioniert nach Restart nicht mehr AWT, Swing, JavaFX & SWT 7
S KeyListener geht nicht AWT, Swing, JavaFX & SWT 12
C Swing KeyListener in JPanel AWT, Swing, JavaFX & SWT 2
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
M Frage zu KeyListener bzgl. JApplet AWT, Swing, JavaFX & SWT 3
H Bild mit KeyListener verschieben AWT, Swing, JavaFX & SWT 2
C JTextField KeyListener AWT, Swing, JavaFX & SWT 6
Y KeyListener, GUI Thread, repaint AWT, Swing, JavaFX & SWT 7
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
E Swing KeyListener implementieren AWT, Swing, JavaFX & SWT 12
P KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 11
M KeyListener richtig implementieren AWT, Swing, JavaFX & SWT 3
T KeyListener AWT, Swing, JavaFX & SWT 4
R KeyListener in JWindow AWT, Swing, JavaFX & SWT 7
T BlueJ KeyListener AWT, Swing, JavaFX & SWT 7
Z KeyListener AWT, Swing, JavaFX & SWT 2
M Swing KeyListener in JTextfield AWT, Swing, JavaFX & SWT 4
C Swing KeyListener für JPanel funktioniert nicht AWT, Swing, JavaFX & SWT 8
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
A Keylistener reagiert nicht AWT, Swing, JavaFX & SWT 10
D Problem mit KeyListener AWT, Swing, JavaFX & SWT 2
J KeyListener um auf CTRL-Enter zu reagieren AWT, Swing, JavaFX & SWT 2
L Snake in Java KeyListener Problem AWT, Swing, JavaFX & SWT 30
B "globaler" KeyListener? AWT, Swing, JavaFX & SWT 3
B JTable TableHeader KeyListener AWT, Swing, JavaFX & SWT 4
S Swing KeyListener und JList AWT, Swing, JavaFX & SWT 2
R KeyListener funzt nicht AWT, Swing, JavaFX & SWT 2
X KeyListener AWT, Swing, JavaFX & SWT 4
P KeyListener + Animation AWT, Swing, JavaFX & SWT 2
M Fokus für KeyListener AWT, Swing, JavaFX & SWT 9
V Problem mit KeyListener im Fullscreen-Modus AWT, Swing, JavaFX & SWT 2
M AWT KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
C Swing KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 7
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
F Tastenabfrage (KeyListener) AWT, Swing, JavaFX & SWT 2
D KeyListener Problem bei JPanel wechsel AWT, Swing, JavaFX & SWT 2
S Swing JTree mit KeyListener AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, requestFocus und KeyBindings AWT, Swing, JavaFX & SWT 8
E JFrame akzeptiert den KeyListener nicht AWT, Swing, JavaFX & SWT 3
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
P Swing KeyListener hört nur manchmal zu AWT, Swing, JavaFX & SWT 2
Screen Focus Problem , KeyListener, TextField , Key AWT, Swing, JavaFX & SWT 4
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
L Problem mit KeyListener AWT, Swing, JavaFX & SWT 3
A KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 4
D KeyListener-Problem nach dem "Gedrückthalten" einer Taste AWT, Swing, JavaFX & SWT 10
B Swing Keylistener fuer Dialog-Buttons AWT, Swing, JavaFX & SWT 2
B KeyListener Strg+s AWT, Swing, JavaFX & SWT 5
D Globaler Keylistener AWT, Swing, JavaFX & SWT 4
M problem mit keylistener/textarea AWT, Swing, JavaFX & SWT 6
M KeyListener Problem unter Firefox AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, Taste gedrückt halten AWT, Swing, JavaFX & SWT 12
M Komisches Verhalten: JCombobox mit KeyListener AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen

Neue Themen


Oben