Java – 如何为JButton应用3个键的键盘快捷键?

目前我正在使用“Ctrl + Space”快捷方式在我的Java代码中触发JButton事件,如下所示:

this.getRootPane().registerKeyboardAction( addStudentButtonActionListener, KeyStroke.getKeyStroke( KeyEvent.VK_SPACE, KeyEvent.CTRL_MASK ), JComponent.WHEN_IN_FOCUSED_WINDOW ); 

但我想为此事件指定“Shift + Ctrl + Space”的快捷方式。 我怎样才能做到这一点 ?

然后使用以下键击:

 KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK) 

您可以使用KeyStroke的String格式

 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); } }); } }