значение ключа акселератора java.awt.event.KeyEvent - PullRequest
4 голосов
/ 18 января 2012

Я использую ускоритель для выполнения CTRL + C , затем CTRL + V с использованием Java / Junit Есть ли способ получить значение CTRL + V , чтобы проверить его?

Ответы [ 2 ]

1 голос
/ 18 января 2012

Как уже упоминалось здесь , ход клавиши ускорения меню, такой как Ctrl + V , должен создаваться независимо от платформы:

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

Для сравнения вы можете получить пункт меню KeyStroke через getAccelerator() или из любого KeyEvent через KeyStroke.getKeyStrokeForEvent().

1 голос
/ 18 января 2012

Если вы имеете в виду, как мне моделировать события ctrl + V и ctrl + C в тесте JUnit для Swingприложение, то я бы порекомендовал посмотреть на FEST .Используя FEST, вы можете имитировать щелчки мыши или нажатия клавиш.Чтобы имитировать ctrl + V , вы должны сделать:

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

и так далее.Для получения дополнительной информации об имитации пользовательского ввода см. Вики Имитация ввода с клавиатуры .

...