我试图了解如何使用 ACCELERATOR_KEY 以及它的作用。我在网上找到了一个代码示例,显示了它是如何使用的,但是当我运行代码时,似乎什么也没有发生。
如果我不得不猜测,ACCELERATOR_KEY 似乎允许用户将键盘命令分配给某些东西,但是在这个示例中,当我按下“A”时,什么也没有发生。任何想法或解释将不胜感激!谢谢!
// w w w . java 2 s .c o m
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.KeyStroke;
public class Main {
public static void main(String[] a) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Action action = new ShowAction();
JCheckBox button = new JCheckBox(action);
frame.add(button, BorderLayout.CENTER);
frame.setSize(350, 150);
frame.setVisible(true);
}
}
class ShowAction extends AbstractAction {
public ShowAction() {
super("About");
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("A"));
putValue(Action.NAME, "Go to number ");
}
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("About Swing");
}
}