使用KeyEvent.VK_COMPOSE键和字符组合时,java.awt.Robot kepress无法用于JPasswordField

时间:2018-12-07 05:48:04

标签: java swing awtrobot

使用KeyEvent.VK_COMPOSE键和字符组合时,java.awt.Robot kepress无法用于JPasswordField

我有一个带有虚拟键盘的swing应用程序,并且正在Linux上运行。当我单击文本字段时,我打开虚拟键盘,并且用户可以单击键并能够输入。

在Linux中,我们需要支持一些撰写关键字符。

  

例如:按撰写键,然后再按两次键s会得到ß

我在虚拟键盘上所做的是当用户按下Compose键时,使用java.awt.Robot.kepress进行KeyEvent.VK_COMPOSE的按键操作。然后,当按下a时,我执行robot.kepress(83);再次按下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中有什么限制吗?

0 个答案:

没有答案