这是我的JButton,“我可以显示完整代码”,
JButton cor =new JButton();
cor.setText("Coor");
mainframe.add(cor);
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);
我需要帮助,如何使用键盘激活此按钮,例如按“CTRL + A”
我有一些网站的红色,并发现我必须使用“密钥绑定”,但仍然可以得到如何做。
请不要说这个主题是重复的,因为以前的主题对我没有帮助。
cor.getInputMap().put(KeyStroke.getKeyStroke("F2"),"act");
Action act = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
int xC = (int) b.getX();
int yC = (int) b.getY();
textArea.replaceSelection("X-Coordinates:" + xC + " Y-Coordinates: " + yC + "\n");
}
};
答案 0 :(得分:2)
您只需要将属性更改为JButton,以获得短路径(在此示例中为ALT + C)
cor.setMnemonic(KeyEvent.VK_C);
您的代码如下所示:
JButton cor =new JButton();
cor.setText("Coor");
cor.setMnemonic(KeyEvent.VK_C);
mainframe.add(cor);
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);
你还会得到一个额外的字母“C”,并强调按钮名称,向用户显示帮助。
答案 1 :(得分:2)
我不确定这是否是您出现问题的原因,但从您的示例中我看到getInputMap
您将关键字与操作名称相关联,但您忘记使用getActionMap
进行关联具有实际操作对象的操作名称,如
cor.getActionMap().put("act", act);
还可以使用 Ctrl + A
cor.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke('A',InputEvent.CTRL_DOWN_MASK), "act");