gpt4 book ai didi

Java 键盘获取移位字符

转载 作者:行者123 更新时间:2023-12-01 15:19:57 24 4
gpt4 key购买 nike

我为我的应用程序创建了一个按键监听器,当用户按下 Shift 键 + a 键时,我需要识别按键代码。

例如,当用户按下shift键+2键(英文键盘)时,应该打印@。我做了一个快速切换/大小写来识别哪个是移位键,但它在 azerty 键盘和 Mac 键盘上都不起作用。

java中有没有办法获取移位键或其他东西?

这很难解释。

我的java应用程序刚刚获取键码,我需要的是与键码关联的移位键码。

例如:

  • (QWERTY) 2 => @; 3 => #;等等...
  • (AZERTY) & => 1; é => 2;等等...

目前,我的代码是这样的(仅适用于 qwerty KB)

String value = String.valueOf((char)key);
if (shift)
{
switch (value.charAt(0))
{
case '1':
return "!";
case '2':
return "@";
case '3':
return "#";

.....

感谢您的帮助。

问候。

最佳答案

尝试使用KeyEvent#getKeyChar() 。对于事件 Shift+a,返回 A。但这仅适用于 KeyListener#keyTyped() 方法,不适用于其他方法 (keyReleased/keyPressed)。这是一个小例子,效果很好。我尝试了不同的键盘布局。您的示例 (Shift+2) 在 qwerty 等中返回 @

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

import javax.swing.JFrame;

public class Maion {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(600, 400);
frame.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped: '" + e.getKeyChar() + "'");
}
});
frame.setVisible(true);
}
}

关于Java 键盘获取移位字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079820/

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