gedrückte Tasten abfragen

Status
Nicht offen für weitere Antworten.

Bergmann

Aktives Mitglied
Hi,

ich bin grad dabei mir Tetris zu bauen, als kleines Einstiegsprojekt in Java. Und ich such ne Möglichkeit die gedrückten Tasten abzufragen. Das müsste ja mit nem KeyListener gehen, oder? Aber bis jetzt hab ich nur Tutorials gefunden, die den KeyListener in einem Edit eintragen. Ich hab aber bis auf mein JFrame nichts weiter. Muss ich das jetzt mit nem Edit machen, oder lässt sich das auch anders realisieren?

MfG Bergmann.
 

Der Müde Joe

Top Contributor
>(Edit heißt es bei Pascal)

Hab ich seit ca 10 Jahren nicht mehr geschrieben, wär mir jetzt nicht eingefallen.

Grundsätzlich addest du den KeyListener oder KeyAdapter in der Komponente (Component) in der du möchtest.
Für ein JFrame wäre das genau gleich wie für ein JPanel. Zeichnen sollte man meist in ein JPanel und
nicht direkt in ein JFrame.

Bsp Code:

Code:
JFrame frame = new JFrame();
frame.addKeyListener(new KeyListener() {
	@Override
	public void keyPressed(KeyEvent e) {
	}
	@Override
	public void keyReleased(KeyEvent e) {
	}
	@Override
	public void keyTyped(KeyEvent e) {
	}
});
// oder (bei Abstrakten klassen müssen wir nicht alles überschreiben
frame.addKeyListener(new KeyAdapter() {
	@Override
	public void keyTyped(KeyEvent e) {
	}			
});
 
Zuletzt bearbeitet:

hdi

Top Contributor
bei Abstrakten klassen müssen wir nicht alles überschreiben
Wo ist hier eine abstrakte Klasse? new Whatever() ist nicht abtrakt. Also ich glaube nicht dass dein zweites Bsp jemals funktioniert, egal in welchem Kontext. KeyAdapter mag vllt abstrakt sein, aber du erstellst hier ja eine anonyme Klasse, die sicherlich nicht abstrakt ist (sonst würde ein new() gar nicht gehen) Oder irre ich mich ???:L Würde mich grad stark wundern?! Also nicht dass ich mich irre..^^ Aber.. wie kann man einem Objekt nen abstrakten Listener adden... Geht doch net?! Das muss doch immer eine konkrete Implementierung sein
 
Zuletzt bearbeitet:

Der Müde Joe

Top Contributor
>What? Wo ist hier eine abstrakte Klasse?

Der KeyAdapter ist abstrak und wird als annonyme Innere Klasse implementiert.
ca
frame.addKeyListener ( new (MyInnerClass extends KeyAdapter { public void keyTyped(KeyEvent e) {} } ))

wobei der Code nicht gehen wird
 

hdi

Top Contributor
Ja also, reden wir jetzt aneinander vorbei? Kurz gesagt: Anonyme Klassen können doch niemals abstrakt sein, deshalb musst du immer alles implementieren. Oder war diese Info nur so reingeworfen, und hat mit diesem Thema nix zu tun?
wobei der Code nicht gehen wird
Eben, das wird es niemals bei so einem Konstrukt
 

Der Müde Joe

Top Contributor
>Anonyme Klassen können doch niemals abstrakt sein, deshalb musst du immer alles implementieren.

Das ist bereits die Implementierung der abstrakten Klasse als annonyme innere Klasse (welche dann nicht mehr abstact ist sondern eben die imlementierung...)

>Eben, das wird es niemals bei so einem Konstrukt

sicher doch.

nur bei:
frame.addKeyListener(new KeyListener() {
muss man alle Methode vom KeyListener implementieren (weil ein Interface)
und bei
frame.addKeyListener(new KeyAdapter() {
nur die Methoden, die man möchte (da in der Abstrakten Klasse schon alle implementiert sind)

[edit] KeyAdapter implementier die Methoden von KeyLsitener nicht als abstract)
[/edit]

>Ja also, reden wir jetzt aneinander vorbei?

ähm..kann sein?
 
S

Spacerat

Gast
@hdi: Das was der Müde Joe da vor hat wird von mir immer mal gerne verwendet (eigentlich aber mit dem WindowAdapter):[highlight=java]frame.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent evt) {
// eventhandling
}
};[/highlight]
 

hdi

Top Contributor
Ja aber das hat doch nichts damit zu tun dass KeyAdapter abstrakt ist. Du hast einfach an dieser Stelle im Programm keine abstrakte Klasse, sondern eine Implementierung. D.h. - ich finde - man hätte nicht sagen sollen

bei Abstrakten klassen müssen wir nicht alles überschreiben

sondern:

bei Klassen die das schon implementieren müssen wir es nicht überschreiben

...ob KeyAdapter nun abstrakte Klasse oder nicht -> spielt hier doch keine Rolle?
 

Der Müde Joe

Top Contributor
>..ob KeyAdapter nun abstrakte Klasse oder nicht -> spielt hier doch keine Rolle?

nein, das spielt keine Rolle. Es könnte auch jede andere Implemtierung da stehen. Wobei
aber richtige Implemtierungen eben ein add(new KeyWhatever() ) ausreicht, die abstrakte
Klasse das aber nicht will (hier zumindest noch ein {}, da keine Mehtode abstract ist)
 

hdi

Top Contributor
Ah ok, jetzt reden wir vom selben ;) Ich finde deine Ausdrucksweise weiter unten war etwas irreführend, aber genauso war meine erste Aussage irreführend, vonwegen dass das nicht kompiliert (ich wusste nicht dass KeyAdapter das Interface implementiert)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Befehl ausführen bei Mausklick + gedrückte Strg-Taste Java Basics - Anfänger-Themen 2
jaleda100 KeyCode – zwei Tasten gleichzeitig Java Basics - Anfänger-Themen 2
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
TheSorm 2 Tasten Gleichzeitig regestrieren Java Basics - Anfänger-Themen 10
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
K Key Listener bei 2 gleichzeitig gedrückten tasten Java Basics - Anfänger-Themen 3
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
N Programm - Tasten aktivieren Java Basics - Anfänger-Themen 4
L ausführen per Tasten druck Java Basics - Anfänger-Themen 15
G Tasten in GUI-Applet benutzen Java Basics - Anfänger-Themen 3
J Tasten überprüfen Java Basics - Anfänger-Themen 2
D wie kann ich deutschen Tasten einen KeyCode zuweisen? Java Basics - Anfänger-Themen 2
T Tastatur Tasten Senden Java Basics - Anfänger-Themen 4
G Wie 2 Tasten zusammen drücken? Java Basics - Anfänger-Themen 4
G Auf 2 Tasten reagieren Java Basics - Anfänger-Themen 10
P 3-Tasten-Hotkey-Kombination Java Basics - Anfänger-Themen 5
J Courser-Tasten Java Basics - Anfänger-Themen 9
S Zwei Tasten gleichzeitig für Aktion Java Basics - Anfänger-Themen 2
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
ven000m Bitcoin Blockhöhe abfragen Java Basics - Anfänger-Themen 12
S If abfragen (+, - , /, *) Java Basics - Anfänger-Themen 13
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
Phash Websocket abfragen Java Basics - Anfänger-Themen 1
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
M Checkbox abfragen und Radiobutton Group zurücksetzen Java Basics - Anfänger-Themen 1
L Datenpaare abfragen Java Basics - Anfänger-Themen 11
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
B Serial port abfragen Java Basics - Anfänger-Themen 18
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
S mehrfache if-Abfragen - beste Lösung Java Basics - Anfänger-Themen 1
E Abfragen des SimpleDateFormats Java Basics - Anfänger-Themen 1
L int array abfragen Java Basics - Anfänger-Themen 16
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
Y Mehrdimensionales Array diagonal abfragen. Java Basics - Anfänger-Themen 5
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
T if abfragen verkürzen Java Basics - Anfänger-Themen 5
M Wo Hilfsvariablen abfragen? Java Basics - Anfänger-Themen 1
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
M Frage nach BestPractice in if-Abfragen Java Basics - Anfänger-Themen 1
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
R IF Abfragen Java Basics - Anfänger-Themen 8
R If Abfragen Problem! Java Basics - Anfänger-Themen 4
I Button abfragen ob er geklickt wurde Java Basics - Anfänger-Themen 4
C If Abfragen Problem Java Basics - Anfänger-Themen 46
I Drei booleans abfragen Java Basics - Anfänger-Themen 2
R Input/Output Java String abfragen Java Basics - Anfänger-Themen 3
A Vokabel abfragen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
E Checkboxen abfragen Java Basics - Anfänger-Themen 10
H if abfragen Java Basics - Anfänger-Themen 38
C TreeMap Abfragen Problem Java Basics - Anfänger-Themen 7
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
B mehrere Abfragen zusammenfügen Java Basics - Anfänger-Themen 3
H durch Schleife 50 Variablen abfragen Java Basics - Anfänger-Themen 8
B If abfragen! Java Basics - Anfänger-Themen 9
J checkbox status abfragen und drucken Java Basics - Anfänger-Themen 13
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
F Bedingungen mit Abfragen verknüpfen Java Basics - Anfänger-Themen 7
P länge von array abfragen? Java Basics - Anfänger-Themen 2
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
T jNumberField auf null abfragen Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
H Checkboxstatus abfragen Java Basics - Anfänger-Themen 10
S unzulässigen Wert abfragen - aber wo Java Basics - Anfänger-Themen 3
eLogic Aktive Internetverbindung abfragen Java Basics - Anfänger-Themen 21
B Abfragen eines Preises.. Java Basics - Anfänger-Themen 20
D Touchpad abfragen?! Java Basics - Anfänger-Themen 9
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
B Abfragen eines Excel-Feldes auf null Java Basics - Anfänger-Themen 17
B GridLayout - elemente mit Maus abfragen Java Basics - Anfänger-Themen 3
B Daten in Instanz einer Klasse ändern / abfragen Java Basics - Anfänger-Themen 12
M Datentypen String mit Trennzeichen abfragen Java Basics - Anfänger-Themen 7
D GUI Checkboxen in allen Klassen abfragen? Java Basics - Anfänger-Themen 5
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
M Double.NaN abfragen Java Basics - Anfänger-Themen 6
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
H Objecttyp abfragen... Java Basics - Anfänger-Themen 11
N Zeilenanzahl einer TXT abfragen..? Java Basics - Anfänger-Themen 11
S Bremsen 3 IF-Abfragen ein Programm? Java Basics - Anfänger-Themen 7
T scanner bestimmtes format abfragen Java Basics - Anfänger-Themen 5
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
S Absatz aus Textdokument abfragen Java Basics - Anfänger-Themen 6
L "unschöne" if-Abfragen Java Basics - Anfänger-Themen 4
JFeel-x JComponent<-----Eigenschaften<-- Als Liste abfragen? Java Basics - Anfänger-Themen 8
P Pixelfarbe abfragen Java Basics - Anfänger-Themen 8
J einfache Tastendrücke in einem JFrame abfragen Java Basics - Anfänger-Themen 2
S if-Abfragen bringen mich zum VERZWEIFELN! Java Basics - Anfänger-Themen 12
B Aus JTable ImageIcon abfragen Java Basics - Anfänger-Themen 8
hdi Desktop-Auflösung abfragen -> setLocation() von Frame Java Basics - Anfänger-Themen 5
D jeditorpane checkbox abfragen? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben