目前,我正在使用"Ctrl + Space“快捷方式在我的Java代码中触发一个JButton事件,如下所示:
this.getRootPane().registerKeyboardAction( addStudentButtonActionListener, KeyStroke.getKeyStroke( KeyEvent.VK_SPACE, KeyEvent.CTRL_MASK ), JComponent.WHEN_IN_FOCUSED_WINDOW );但是我想为这个事件指定一个快捷方式"Shift + Ctrl + Space“。我怎么能这么做?
发布于 2014-08-04 13:54:41
然后使用以下键笔画:
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,
KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK)发布于 2014-08-04 14:02:02
可以使用KeyStroke的字符串格式。
KeyStroke.getKeyStroke("shift ctrl pressed SPACE")示例
import java.awt.event.*;
import javax.swing.*;
public class TestShiftCtrlSpace {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
JFrame frame = new JFrame();
JPanel panel = (JPanel)frame.getContentPane();
InputMap im = panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
im.put(KeyStroke.getKeyStroke("shift ctrl pressed SPACE"), "scs");
panel.getActionMap().put("scs", new AbstractAction(){
public void actionPerformed(ActionEvent e) {
System.out.println("Shift + Ctrl + Space");
}
});
frame.setSize(300, 300);
frame.setLocationByPlatform(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}https://stackoverflow.com/questions/25120254
复制相似问题