Ich habe zwei JButton
s und möchte ihnen erlauben, mit den Pfeiltasten der Tastatur verwendet zu werden, wann immer das JFrame
den Fokus hat.
Kann mir jemand in die richtige Richtung weisen?
Ich habe zwei JButton
s und möchte ihnen erlauben, mit den Pfeiltasten der Tastatur verwendet zu werden, wann immer das JFrame
den Fokus hat.
Kann mir jemand in die richtige Richtung weisen?
Geändert von Swing's Action Demo.
Die Initialisierung Ihrer Schaltfläche:
// Setzt das Mnemonic auf Abwärts, ohne Hinweis anzeigen
JButton down = new JButton(new DownAction("Abwärts", null, "Dies ist die Abwärtsschaltfläche", new Integer(KeyEvent.VK_DOWN));
Die Aktion:
class DownAction extends AbstractAction {
public DownAction(String text, ImageIcon icon,
String desc, Integer mnemonic) {
super(text, icon);
putValue(SHORT_DESCRIPTION, desc);
putValue(MNEMONIC_KEY, mnemonic);
}
public void actionPerformed(ActionEvent e) {
displayResult("Aktion für erste Schaltfläche/Menüelement", e);
}
}
Um die Tasten abzufangen (ohne sich darum zu kümmern, ob das spezifische Bauteil im Fokus ist), sollte man InputMap
verwenden. Lesen Sie zum Beispiel hier weiter:
http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html
Und verwenden Sie die Konstante WHEN_IN_FOCUSED_WINDOW
.
Wenn der betreffende Knopf nicht einfach nur eine einzelne Methode aufruft, ist der beste Weg, "was auch immer der Knopf tut" zu tun:
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
((AbstractButton) c).doClick();
}
});
Nun, wenn du sagst, du möchtest ihnen erlauben, die "Pfeiltasten" zu verwenden, nehme ich an, du möchtest die Fokussierung übertragen können. Wenn das der Fall ist, lies den Abschnitt im Swing-Tutorial zu Verwendung des Fokussierungssystems. Dort wird ein Beispiel dafür gegeben, wie du die Eingabetaste dafür nutzen kannst.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.