アプリケーションにキーボード レイアウトに依存しないキーボード ショートカットを実装しようとしています。たとえば、ズームに Ctrl-+ を使用します。
私はそうする正しい方法は次のようなものだと思いました:
KeyStroke.getKeyStroke(new Character('+'), 0)
KeyStroke.getKeyStroke(new Character('+'), InputEvent.CTRL_DOWN_MASK)
残念ながら、最初の方法しか機能していないようですが、2 行目のような修飾キーを使用したいと考えています。
これを修正する方法についてのアイデアはありますか?
完全なスニペットを次に示します。
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);
}
}