java:如何发送加速键

时间:2011-09-05 17:17:05

标签: java swing jtable junit4 keyboard-events

我在eclipse下使用Junit4。 我想写一个能够发送动作的测试:ctrl+shift+P

我使用JTable尝试了这个,因为我不知道我可以使用哪个组件sendAcceleratorKey

myTable.sendAcceleratorKey(InputEvent.CTRL, InputEvent.SHIFT_DOWN_MASK)

但我不能添加第三个参数来说KeyEvent.P

如何发送更改菜单的动作?

谢谢!

2 个答案:

答案 0 :(得分:4)

我猜你可以使用Robot类。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_P);

Thread.sleep(1000); // Time for your code to react to the event

assert(...);

robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_P);

答案 1 :(得分:1)

我找不到对sendAcceleratorKey()的任何引用。但如果它真的存在并且它能够满足您的需求,那么使用关键修饰符以这种方式使用方法看起来很合理:

myTable.sendAcceleratorKey(InputEvent.CTRL | InputEvent.SHIFT_DOWN_MASK,
                           KeyEvent.VK_P);

否则,尝试交换参数,具体取决于方法签名。

myTable.sendAcceleratorKey(KeyEvent.VK_P,
                           InputEvent.CTRL | InputEvent.SHIFT_DOWN_MASK);
相关问题