加速键值java.awt.event.KeyEvent

时间:2012-01-18 15:07:59

标签: java swing junit key-events

我正在使用加速器执行 CTRL + C 然后 CTRL + V 使用java / junit 有没有办法得到 CTRL + V 的值来检查它?

2 个答案:

答案 0 :(得分:1)

如果你的意思是我如何在JUnit中模拟 ctrl + V ctrl + C 事件测试Swing应用程序,然后我建议查看FEST。使用FEST,您可以模拟鼠标点击或按键。模拟一个 ctrl + V ,你会这样做:

// import static java.awt.event.KeyEvent.*;          
dialog.list("employees").pressKey(VK_CONTROL)
                        .pressAndReleaseKey(VK_V)
                        .releaseKey(VK_CONTROL);

等等。有关模拟用户输入的更多信息,请参阅wiki Simulating Keyboard Input

答案 1 :(得分:1)

如上所述here,菜单加速键按键,例如 Ctrl + V 应以独立于平台的方式构建:

int mask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
JMenuItem menuItem = new JMenuItem(…);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, mask));

为了进行比较,您可以通过getAccelerator()或通过KeyStroke.getKeyStrokeForEvent()从任何KeyStroke获取菜单项KeyEvent