Portal > Foren > Java > Desktop-Applikationen und Grafik > char in KeyEvent umwandeln? (Bsp.: 'n' = KeyEvent.VK_N)
Antwort
 
Themen-Optionen
Alt 08.06.2004, 21:25 Nach oben    #1
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard char in KeyEvent umwandeln? (Bsp.: 'n' = KeyEvent.VK_N)

Hi. Da ich es hasse in Java Menü's zu basteln und ich grade XML gelernt habe, habe ich eine kleine Klasse geschrieben, die eine XML-Datei in eine JMenuBar umwandelt.
Actions, usw. funktionieren auch schon einwandfrei.
Nun fehlen nur noch accelerators und mnemonics. Dafür müsste ich aber einen char (oder String) in ein einem KeyEvent entsprechend Wert umwandeln. Gibt es dafür bereits eine fertige Methode oder muss ich die selbst tippen?

Ich bedanke mich schonmal.

PS: Sollte interesse bestehen kann ich die fertige Klasse dann ja auch mal veröffentlichen.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.06.2004, 00:06 Nach oben    #2
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 433
Standard

Hi,

ich verstehe Dich nicht ganz. Du kannst doch einfach eine Instanz eines KeyEvent erzeugen und damit arbeiten.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.06.2004, 10:51 Nach oben    #3
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Ok. Du hast mich einfach nur falsch verstanden.

Ich brauche kein KeyEvent, sondern einen Wert, den ich der Klasse KeyStroke als Parameter (in der statischen getKeyStroke-Methode) übergeben kann.

Beispiel:
KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_N);

an ein JMenu als accelerator übergeben ermöglicht das direkte aufrufen des Menüs durch drücken der Taste "n" (im Menü selbst steht dann "s" hinter dem Namen des Menü-Items).

Folgender Code hingegen produziert bei mir nur ein "Tastenblock" hinter dem Namen:
KeyStroke ks = KeyStroke.getKeyStroke('n');

Und das ist mein ganzes Problem. Wie kann ich einen char (im Beispiel 'n') in einen weiterverwendbaren Integerwert umwandeln.
(Bevor damit jemand kommt: typecasting bringt hier nichts)

Der Integer (falls das ein Integer ist)-Wert von VK_N ist z.B. 0x4E
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.06.2004, 13:27 Nach oben    #4
Neuer Benutzer
 
Registriert seit: 27.05.2004
Beiträge: 25
Standard

Wenn du in der Doku mal nachschaust (API-Doku), so sind unter ConstantFieldValues alle Integer-Werte für die VK-Werte zu finden. n hat beispielsweise 78 (Das ist jetzt ein Integer!). Diese findest du beispielsweise, indem du im Index nach der Klasse "Calendar" suchst. Hast du diese HTML-Seite geöffnet, so kannst du die Seite nach dem Eintrag "Constant Field Values" durchsuchen. Die damit geöffnete HTML-Seite durchsuchst du nun nach VK und findest deine Werte.

MfG Bischi
bischi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.06.2004, 13:39 Nach oben    #5
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Ok.... das mag für mich gehen, aber das ist auch nicht die Lösung meines Problemes.
Ausser du meintest, dass mein Programm sich mit dem Internet verbinden und diese Aktionen dann automatisch durchführen solle - was mit Sicherheit keine passende Lösung ist.

Nochmal, ganz langsam:
Ich habe ein char, ich weiß, bevor ich es bekomme, nicht, was darinsteht und ich habe keinerlei Möglichkeit zu bestimmen, welchen Wert dieser char besitzen soll.
Soweit klar?

Gut weiter: Nachdem ich nun also diesen char kenne möchte ich ihn verwenden, um einem Menü einen Accelerator (ne Tastenkombination, mit der ich die Action des Menüs direkt ansteuern kann, bsp.: STRG+S im Windows Texteditor zum speichern) zuzuweisen.
Wenn ich den char direkt verwende bekomme ich das Ergebnis "Tastenblock" - damit kann ich aber nichts anfangen, ergo: klappt nicht.
Wenn ich den char in eine Integer umwandle quitiert mir die Klasse KeyStroke dies mit dem bekannten Ergebnis "Tastenblock".

Jetzt suche ich eine Möglichkeit, um den gegebenen char in einen verwertbaren Wert umzuwandeln.

Eine einfache Möglichkeit, zu der ich aber auf Grund der dafür notwendigen Schreibarbeit keine besondere Lust habe, wäre diese hier:
Code:
switch(ch) {
     case 'a': return KeyEvent.VK_A;
     // [...]
}
Habt ihr jetzt eine Vorstellung davon, was ich wissen möchte?
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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 are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Anfänger char bubble in Java Ashurek Allgemeine Java-Programmierung 7 01.11.2005 14:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:33 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, 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