Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Shortcut für JButton
BenNavis
25-06-2003, 09:33
Hi,
ich möchte, dass ein Jbutton per Keyboard shortcut gedrückt werden kann.
1. Wie kann ich es ermöglichen, dass dies nur bei z.B. Strg + w möglich ist?
2. Wie kann ich das "w" im Label unterstreichen?
Danke,
Ben
hi
du kannst die Mnemonics (shortcuts) mit setMnemonic() setzen
gruss
BenNavis
25-06-2003, 10:30
hi,
EDIT: ich sehe grade, das ist für den Unterstrich. so weit so gut...
Aber kannst Du mir noch einen Tipp geben, wie ich im KeyListener abfange, dass nur bei strg + w etwas passiert?
Ben
Schau mal nach, wenn ich Zeit habe (kann etwas dauern...)
MfG Bischi
hiho, ich hab mal ein wenig im netz gestöbert, und was gefunden :)
probiers mal damit
http://java.sun.com/products/jlf/ed2/book/HIG.Behavior3.html#43478
und auch ein source-beispiel
http://java.sun.com/products/jlf/ed2/samcode/textmen.html
ich hoffe ich konnte weiterhelfen
euer hpf
BenNavis
25-06-2003, 11:48
Danke, aber das ist nicht so ganz das, was ich meinte.
Nochmal mein Szenario:
Ich habe einen button, ich möchte:
1. Bei Mouseclick eine bestimmte Methode aufrufen (erledigt)
2. Bei Tastendruck von Enter oder Space, wenn der Button markiert ist, eine Methode aufrufen (erledigt)
3. Bei Tastendruck von STRG+W eine Methode aufrufen, wenn der Button nicht markiert ist (help me!! :) )
Gruß,
Ben
BenNavis
25-06-2003, 12:01
Das Problem ist, dass ich bei einem Button einfach ein button.addKeyListener(...) machen kann und dann hab ich einen KeyListener an dem Button registriert.
Wenn ich jetzt aber einen globalen Shortcut ermöglichen will, dann bringt es mir ja nix das an dem Button zu machen, sondern ich muss den KeyListener an höherer Stelle registrieren, nur wo...?
Ben
setMnemonic
public void setMnemonic(int mnemonic)
Sets the keyboard mnemonic on the current model. The mnemonic is the key which when combined with the look and feel's mouseless modifier (usually Alt) will activate this button if focus is contained somewhere within this button's ancestor window.
A mnemonic must correspond to a single key on the keyboard and should be specified using one of the VK_XXX keycodes defined in java.awt.event.KeyEvent. Mnemonics are case-insensitive, therefore a key event with the corresponding keycode would cause the button to be activated whether or not the Shift modifier was pressed.
If the character defined by the mnemonic is found within the button's label string, the first occurrence of it will be underlined to indicate the mnemonic to the user.
Parameters:
mnemonic - the key code which represents the mnemonic
See Also:
KeyEvent, setDisplayedMnemonicIndex(int)
Auszug aus API-Doku, würds mal so versuchen
MfG Bischi
BenNavis
25-06-2003, 12:42
Super, habs hinbekommen! :)
Vielen Dank allen Beteiligten!!
Gruß,
Ben
EDIT: Eine Sache hab ich noch. Wenn ich per Tastenkürzel Button1 gedrückt hab und dann per Tastenkürzel Button2 drücken will, dann muss ich das Tastenkürzel zweimal dürcken, weil beim ersten mal erst Button2 markiert wird und beim zweiten mal wird er erst gedrückt.
Man kann da was gegen machen?
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.