KeyStroke erzeugt falschen Wert

Status
Nicht offen für weitere Antworten.

chrgai

Mitglied
Hallo zusammen.
Ich experimentiere derzeit unter Eclipse ein wenig an Swing herum.
Folgendes Problem ist aufgetreten:
der Code:
Code:
JMenuItem quit = new JMenuItem("Quit", 'i');
		ret.add(quit);
		char q = 'q';
		quit.setAccelerator(KeyStroke.getKeyStroke(q, Event.CTRL_MASK));
		quit.addActionListener(this);
sollte ein MenuItem erzeugen, welches mit der Tastenkombi STRG-q zum
beenden des Programms führt. Ich habe den char 'q' auch schon direkt
eingesetzt und auch schon durch andere Buchstaben ersetzt. Leider
wird aber immer ein völlig anderer Buchstabe im fertigen Programm
angezeigt. Im Fall von 'q' ist es die Taste F2, welche bei mir (Linux) zum
umschalten der Arbeitsfläche führt. Mit anderen Tasten beendet
die Funktion korrekt. Es wird also "nur" die falsche Taste angezeigt.
Eclipse arbeitet mit UTF-8. Ich glaube also nicht das es an der Plattform
liegt.
Ich hoffe ihr könnt mir helfen.

/Christian
 

chrgai

Mitglied
SlaterB hat gesagt.:

Tut mir leid. Aber damit kann ich nix anfangen. Warum wird ein "falscher" Buchstabe/Taste
angezeigt? Funktionieren tut die ganze Sache. Nur die Anzeige stimmt nicht mit dem im
code eingegebenen Buchstaben überein.
 
S

SlaterB

Gast
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/KeyStroke.html#getKeyStroke(int,%20int,%20boolean)

getKeyStroke
public static KeyStroke getKeyStroke(int keyCode,
int modifiers)Returns a shared instance of a KeyStroke, given a numeric key code and a set of modifiers. The returned KeyStroke will correspond to a key press.
The "virtual key" constants defined in java.awt.event.KeyEvent can be used to specify the key code. For example:

java.awt.event.KeyEvent.VK_ENTER
java.awt.event.KeyEvent.VK_TAB
java.awt.event.KeyEvent.VK_SPACE

..

wieso übergibst du da ein char?, du musst eine spezielle Konstante übergeben
 

chrgai

Mitglied
Aha. Jetzt hab ich es verstanden. Ich kann nicht den "key" als Char-Wert eingeben, sondern muss den
richtigen KeyEvent für Q einfügen.
Die Zeile
Code:
quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_MASK));
erzeugt nun das richtige aussehen im Programm, und die Tastenkombi STRG-Q beendet
die Anwendung.

Ich frage mich nur wesshalb im Handbuch der Java-Programmierung das Beispiel wie von
mir dargestellt vermittelt wird.

/Christian
 
S

SlaterB

Gast
wahrscheinlich, weil die dort auch mal die API lesen (im Gegensatz zu gewissen anderen Personen),
es gibt auch

getKeyStroke
public static KeyStroke getKeyStroke(char keyChar)
Returns a shared instance of a KeyStroke that represents a KEY_TYPED event for the specified character.

Parameters:
keyChar - the character value for a keyboard key
Returns:
a KeyStroke object for that key
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
F Session wird mehrfach erzeugt Java Basics - Anfänger-Themen 11
J Logging erzeugt zwei dateien.... Java Basics - Anfänger-Themen 7
B MySQL starten / stoppen -> Stoppen erzeugt neuen Prozess Java Basics - Anfänger-Themen 0
L Variable für JLabel wird nicht erzeugt Java Basics - Anfänger-Themen 6
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
W Input/Output System.in.read erzeugt nicht, was ich will Java Basics - Anfänger-Themen 1
Z FileWriter erzeugt Symbole Java Basics - Anfänger-Themen 8
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
A EAN13 Font auf graphics g erzeugt Monospaces Java Basics - Anfänger-Themen 14
U Ausgabe aus Arraylist erzeugt Exceptionfehler Java Basics - Anfänger-Themen 13
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
T JTable wird nicht erzeugt, wieso? Java Basics - Anfänger-Themen 17
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
E Compiler-Fehler Quelltext aus Buch erzeugt Fehler Java Basics - Anfänger-Themen 3
M Rausfinden welches Objekt ein anderes Objekt erzeugt hat?! Java Basics - Anfänger-Themen 3
D jar erzeugt jar? Java Basics - Anfänger-Themen 8
F Wie erzeugt man ein Array von Objekten? Java Basics - Anfänger-Themen 2
B if erzeugt nur immer ein FALSE Java Basics - Anfänger-Themen 2
F .readLine() erzeugt endlosschleife Java Basics - Anfänger-Themen 4
E Jar - mit ecipse erzeugt - funktioniert nicht. Java Basics - Anfänger-Themen 6
D Ein Objekt erzeugt ein anderes Objekt - Wie beide Objekte abspeichern? Java Basics - Anfänger-Themen 5
-horn- Wann wird alles NaN erzeugt? Java Basics - Anfänger-Themen 22
P Java erzeugt zu viel Last? Java Basics - Anfänger-Themen 15
G Log-Datei wird nur in Eclipse aber nicht auf Tomcat erzeugt Java Basics - Anfänger-Themen 5
G Datei speichern erzeugt ungewollte UTF-Zeichen Java Basics - Anfänger-Themen 9
T RandomAccessFile erzeugt seltsame Zeichen Java Basics - Anfänger-Themen 2
I In Instanz ausgeben wer sie erzeugt hat Java Basics - Anfänger-Themen 2
MasterEvil Komma auf Numblock erzeugt nur Kästchen Java Basics - Anfänger-Themen 3
N Objekt wird nicht erzeugt, Werte nicht übergeben _ Null Java Basics - Anfänger-Themen 11
M BufferedImage erzeugt OutOfMemoryError Java Basics - Anfänger-Themen 10
G Properties-Objekt erzeugt Java Basics - Anfänger-Themen 3
C Es werden keine weiteren Buttons erzeugt Java Basics - Anfänger-Themen 11
U werden da immer neue Objekte erzeugt? Java Basics - Anfänger-Themen 3
G Objekt erzeugt? Java Basics - Anfänger-Themen 6
S JTextField in Schleife erzeugt, später wieder abfragen ? Java Basics - Anfänger-Themen 11
megachucky Random erzeugt immer nur dieselbe Zahl ? Java Basics - Anfänger-Themen 5
C Datei wird nicht erzeugt Java Basics - Anfänger-Themen 3
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
A Rekursion stoppt an der falschen Stelle Java Basics - Anfänger-Themen 4
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
E Gregorian Calendar übergibt falschen Wochentag Java Basics - Anfänger-Themen 2
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
J Lösung eines Zahlenintervall wierd an der Falschen Stelle angezeigt. Java Basics - Anfänger-Themen 8
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
B KeyTyped gibt falschen Wert aus Java Basics - Anfänger-Themen 2
G Bild wird im falschen Frame angezeigt Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben