首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java-如何为JButton应用3键的键盘快捷键?

Java-如何为JButton应用3键的键盘快捷键?
EN

Stack Overflow用户
提问于 2014-08-04 13:48:51
回答 2查看 3.4K关注 0票数 1

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

代码语言:javascript
复制
this.getRootPane().registerKeyboardAction( addStudentButtonActionListener, KeyStroke.getKeyStroke( KeyEvent.VK_SPACE, KeyEvent.CTRL_MASK ), JComponent.WHEN_IN_FOCUSED_WINDOW );

但是我想为这个事件指定一个快捷方式"Shift + Ctrl + Space“。我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-04 13:54:41

然后使用以下键笔画:

代码语言:javascript
复制
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,
    KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK)
票数 3
EN

Stack Overflow用户

发布于 2014-08-04 14:02:02

可以使用KeyStroke的字符串格式。

代码语言:javascript
复制
KeyStroke.getKeyStroke("shift ctrl pressed SPACE")

示例

代码语言:javascript
复制
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);
            }
        });
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25120254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档