gpt4 book ai didi

java - 如何为国际键盘定义可读的快捷键?

转载 作者:搜寻专家 更新时间:2023-11-01 03:52:14 27 4
gpt4 key购买 nike

我想我可以使用键盘键的字符串表示来配置快捷方式,即让某人在资源包中定义击键并将该值直接传递给 javax.swing.KeyStroke.getKeyStroke(String)。但这不适用于国际键盘,例如阿拉伯。那里的键盘键只是高级键类型事件,但快捷方式需要定义为低级按键事件及其键代码表示。如果知道相应的键码,就可以使用该键的英文表示来使其工作,但是应该从哪里知道呢?我写了一个关键的监听器来说明这一点,但是在以编程方式解析 String 时我需要一些东西。有没有使用依赖于自然语言的快捷方式的键表示的想法?

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

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


public class InternationalKeyStroke {

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

public void run() {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(600, 400));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
final JLabel label = new JLabel("Type the key you want to know the key code of!");
panel.add(label);
frame.addKeyListener(new KeyAdapter() {

@Override
public void keyPressed(KeyEvent e) {
String text = "Key " + e.getKeyChar() + " needs to be configured with char ='" + (char) e.getKeyCode() + "'";
label.setText(text);
System.out.println(text);
}

});
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);

KeyStroke working = KeyStroke.getKeyStroke("control typed A");
label.registerKeyboardAction(new AbstractAction() {

@Override
public void actionPerformed(ActionEvent event) {
System.out.println("Working action " + event);
}
}, working, JComponent.WHEN_IN_FOCUSED_WINDOW);

KeyStroke target = KeyStroke.getKeyStroke("control typed ش");
System.out.println(target);
label.registerKeyboardAction(new AbstractAction() {

@Override
public void actionPerformed(ActionEvent event) {
System.out.println("Not working Action " + event);
}
}, target, JComponent.WHEN_IN_FOCUSED_WINDOW);
}
});
}
}

最佳答案

这似乎是不可能的。我检查了Microsoft Office和Eclipse,它们都没有使用当前语言环境的真实unicode字母,而是相应的虚拟键码的字母......

关于java - 如何为国际键盘定义可读的快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com