java.awt.robot kepress在使用keyevent.vk\u组合键和字符组合时不适用于jpasswordfield

ut6juiuv  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(189)

java.awt.robot kepress在使用keyevent.vk\u组合键和字符组合时不适用于jpasswordfield
我有一个带有虚拟键盘的swing应用程序,运行在linux上。当我点击一个文本字段时,我打开了虚拟键盘,用户可以点击按键并可以输入。
在linux中,我们需要支持一些组合键字符。
例如:按组合键,然后按两次“s”键,就得到了ß
我在虚拟键盘中所做的是当用户按下组合键时,使用java.awt.robot.kepress我执行keyevent.vk\u compose的按键。当a被按下时,我做机器人,当a再次被按下时,我做同样的事情。
下面是我的总体做法。

Robot robot = new Robot();

// On pressing compose Key
robot.keyPress(KeyEvent.VK_COMPOSE);
robot.keyRelease(KeyEvent.VK_COMPOSE);

int c = 83; // Key s

// On First Press
robot.keyPress(c);
robot.keyRelease(c);

//On Second Press
robot.keyPress(c);
robot.keyRelease(c);

以上内容适用于jtextfield。当我按组合键,然后按两次,文本字段显示ß. 所以它工作得很好
但在jpasswordfield中,情况并非如此。按一次compose和s,就不会像预期的那样在字段中打印任何内容。但在第二次按下时,密码字段将打印圆点。但当我检查值时,它不是ß
原因是什么?jpasswordfield或robot有什么限制吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题