0

我正在尝试为我的应用程序实现与键盘布局无关的键盘快捷键,例如使用 Ctrl-+ 进行缩放。

我认为这样做的正确方法是:

KeyStroke.getKeyStroke(new Character('+'), 0)
KeyStroke.getKeyStroke(new Character('+'), InputEvent.CTRL_DOWN_MASK)

不幸的是,似乎只有第一种方法有效,而我想使用第二行中的修饰键。

有想法该怎么解决这个吗?

这是一个完整的片段:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

public class KeystrokeTest extends JFrame{
    JLabel label = new JLabel("text");
    public KeystrokeTest(){
        JPanel panel = new JPanel();
        panel.add(label);
        panel.registerKeyboardAction(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                label.setVisible(!label.isVisible());
            }
        }, 
        KeyStroke.getKeyStroke(new Character('+'), InputEvent.CTRL_DOWN_MASK),
        JComponent.WHEN_IN_FOCUSED_WINDOW);
        add(panel);
        setSize(200,200);
    }
    public static void main(String[] args) {
        new KeystrokeTest().setVisible(true);
    }
}
4

1 回答 1

0

试试这条线

KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_MASK);
于 2013-04-12T08:54:00.467 回答