4

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

4

2 回答 2

1

如果您的意思是如何在 Swing 应用程序的 JUnit 测试中模拟ctrl+Vctrl+C事件,那么我建议您查看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

于 2012-01-18T19:08:52.617 回答
1

正如这里提到的,菜单加速键击如Ctrl+V应该以独立于平台的方式构建:

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

为了比较,您可以获取菜单项的KeyStrokeviagetAccelerator()或从任何KeyEventvia KeyStroke.getKeyStrokeForEvent()

于 2012-01-18T19:14:02.627 回答