Antwort
 
Themen-Optionen Thema durchsuchen
Alt 10.08.2005, 12:55 Nach oben    #1
bluelight
Gast
 
Beiträge: n/a
Standard KeyListener

Ich habe folgendes Problem: Ich frage mit einem KeyListener die aktuel gedrückte Taste ab. Wenn allerdings zwei tasten gedrücckt werden weiß ich nicht wie ich rauß bekommen kann welche beiden Tasten gedrückt worden sind. Weiß jemand wie ich das hin bekommen kann.

viele Dank im Vorraus
bleulight
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2005, 17:09 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.547
Standard

Hi,
in welchem Bezug verwendest Du das denn?

Ich frage, weil man in einem Memnü bzw. JMenuItem ja mit der Klasse KeyStroke bzw. der Methode setAccelerator(KeyStroke keyStroke) gearbeitet wird.

Vielleicht kannst Du das auch irgendwie nutzen?

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2005, 21:03 Nach oben    #3
bluelight
Gast
 
Beiträge: n/a
Standard

ich hab nen kleines spiel programmiert, wenn mann eine taste drückt soll sich das eine Objekt bewegen wenn man die andere drückt das andere und wenn man beide drückt sollen sich beide bewegen.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2005, 21:07 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.547
Standard

Könntest Du eventuell abfragen, ob beide Tasten in einem bestimmten Zeitintervall gedrückt wurden?
Also vielleicht gibt es auch irgendwie eine "direkte" Lösung, aber die kenne ich nicht

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2005, 22:33 Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

du musst die zustände speichern in denen sich die einzelnen tasten befinden...
bei normalen fällen wartet man ja auf ein keyTyped event, für spiele ist aber das keyPressed und keyRealeased event wichtig.
du speicherst z.b. in einer HashMap, oder wenns nicht so viele tasten sind in normalen feldern, einen boolen wert der angibt ob eine bestimmte taste gedrückt ist oder nicht.
in der paint methode deines spiels schaust du dann ob das flag für die bestimmte taste gesetzt ist, wenn ja wird das endsprechende objekt verschoben.
wird eine taste losgelassen so wird das endsprechende flag in keyReleased wieder gelöscht.
das ganze funktioniert aber nur flüssig, wenn das bild kontinuierlich neugezeichnet wird.
hoffe das hilf dir weiter

mfg beny
beny_mcde ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2005, 23:13 Nach oben    #6
philo
Gast
 
Beiträge: n/a
Standard Shift, Alt, Ctrl Abfrage

hallo,

ich wuerde gern nachschauen, ob Alt, Shift oder Ctrl gedrueckt wurde. Ich werde aus der Api nicht schlau.

Da gibt es eine getKeyModifiers(int keyCode) Methode, aber ich weiss nicht, warum ich der ein Argument geben muss. Ich will doch wissen, was gedrueckt wurde. Die Dokumentation ist diesbezueglich auch eher schwach.

Hat jemand eine Ahnung
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2005, 23:37 Nach oben    #7
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Wann genau möchtest du denn erfahren ob die Taste gedrückt wurde?
Der nomale Vorgang:
Du implementierst einen KeyListener und fängst dann wie folgt ab:

void keyPressed(KeyEvent e) {
if (e.getKeyCode() = KeyEvent.VK_ALT) {
// Das passiert wenn man ALT drückt
}
}

ungetestet, müßte aber gehen.

Die Key-Codes für die Tasten die du suchst:
KeyEvent.VK_ALT = Alt-Taste
KeyEvent.VK_CONTROL = Ctrl/Strg-Taste
KeyEvent.VK_SHIFT = Shift-Taste


Hoffe das hilft dir.


Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2005, 23:56 Nach oben    #8
philo
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von sparrow
Wann genau möchtest du denn erfahren ob die Taste gedrückt wurde?
Der nomale Vorgang:
Du implementierst einen KeyListener und fängst dann wie folgt ab:

void keyPressed(KeyEvent e) {
if (e.getKeyCode() = KeyEvent.VK_ALT) {
// Das passiert wenn man ALT drückt
}
}

ungetestet, müßte aber gehen.

Die Key-Codes für die Tasten die du suchst:
KeyEvent.VK_ALT = Alt-Taste
KeyEvent.VK_CONTROL = Ctrl/Strg-Taste
KeyEvent.VK_SHIFT = Shift-Taste


Hoffe das hilft dir.


Sparrow
danke, das ist mir ja alles klar, ich will wissen, was ich machen muss, um zu schauen, ob ALT+E gedrueckt wurde, denn nur dann, will ich Aktionen ausfuehren, sonst soll nichts passieren.

gruss
ivo
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.09.2005, 00:24 Nach oben    #9
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Ok, war aus deinem Post aber auch wirklich schwer rauszulesen
Also nehme ich an, dass der Key_Listener läuft? juut, dann sollte folgendes funktionieren:

PHP-Code:
void keyPressed(KeyEvent e) {
   if (
e.getKeyCode() = KeyEvent.VK_E && e.isAltDown()) {
      
// Das passiert wenn man ALT+E drückt
   
}


Müßte gehen

Die Methoden
KeyEvent.isShiftDown()
und
KeyEvent.isControlDown()
gibt es auch
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.09.2005, 00:30 Nach oben    #10
philo
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von sparrow
Ok, war aus deinem Post aber auch wirklich schwer rauszulesen
Also nehme ich an, dass der Key_Listener läuft? juut, dann sollte folgendes funktionieren:

PHP-Code:
void keyPressed(KeyEvent e) {
   if (
e.getKeyCode() = KeyEvent.VK_E && e.isAltDown()) {
      
// Das passiert wenn man ALT+E drückt
   
}


Müßte gehen

Die Methoden
KeyEvent.isShiftDown()
und
KeyEvent.isControlDown()
gibt es auch
ja, danke. das geht natuerlich. ich hatte die methoden nicht gefunden, da sie in der Klassse InputEvent implementiert sind.

gruss
philo
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.09.2005, 00:37 Nach oben    #11
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Schön wenn es damit funktioniert.
Ich bin mir auch gar nicht sicher im man das mit dem auslesen von modifiern funktionieren würde, weil ja erst die ALT-Taste und dann der Buchstabe nen KeyCode bzw. ein Event werfen.
Wie gesagt, wenns funktioniert wär ja prima


Gruß
Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit KeyListener Xean Allgemeine Java-Programmierung 4 26.03.2006 19:05
Systemweiter KeyListener / Systemweite Tasten feuern Konstantin Allgemeine Java-Programmierung 3 09.12.2005 18:09
Probleme mit dem KeyListener VipViper2000 Allgemeine Java-Programmierung 2 04.07.2005 03:04
JTable mit Keylistener füllen! Java_Newbie Allgemeine Java-Programmierung 2 13.06.2005 15:26
Programmablauf bis Unterbrechung? Nightsky Allgemeine Java-Programmierung 8 15.09.2004 12:48


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45