我在法语中使用带有azerty键盘的Ubuntu,并且每个带有重音符号的键(éè...)的键码都为0。
KeyPressed / release适用于其他键,但我还需要它与“é”“è”“à”“ù”...
如何让它发挥作用?还有其他方法吗?
编辑:这是代码:
import java.awt.Event;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyHandler implements KeyListener {
private Screen screen;
private Screen.KeyTyped keyTyped;
public KeyHandler(Screen screen) {
this.screen = screen;
this.keyTyped = this.screen.new KeyTyped(screen);
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
System.out.println(keyCode);
//this one works well for backspace for instance
if (keyCode == KeyEvent.VK_BACK_SPACE) {
this.keyTyped.keyBACKSPACE();
}
//many others keys which work
...
}
}
使用此System.out.println,我获得了密钥的密钥代码:
我想要映射第二行,它是F1 F2 F3 ...和AZERTYUIOP之间的一行,此行中的键是:& é“'( - è_çà)=
当我尝试我的程序时,println的结果是:
&安培; 150
é0
“152
'222
(519
è0
_ 523
ç0
à0
)522
= 61
所以它适用于大多数键,但对于任何非英语字母,都有问题,键码为0,我相信这意味着java不知道它是哪个键( http://docs.oracle.com/javase/7/docs/api/constant-values.html
public static final int KEY_LOCATION_UNKNOWN 0
)
所以我的问题是,如何为那些非常常用的法语键盘键创建一个键码?
感谢您的帮助。