我正在使用加速器执行CTRL+C然后CTRL+V使用 java/junit 有没有办法获取CTRL+的值V来检查它?
问问题
1584 次
2 回答
1
如果您的意思是如何在 Swing 应用程序的 JUnit 测试中模拟ctrl+V和ctrl+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));
为了比较,您可以获取菜单项的KeyStroke
viagetAccelerator()
或从任何KeyEvent
via KeyStroke.getKeyStrokeForEvent()
。
于 2012-01-18T19:14:02.627 回答