Java - Можем ли мы определить, нажата ли клавиша без использования прослушивателя?

Мне нужно быть в состоянии определить, была ли нажата определенная клавиша (например, CTRL) во время моей конкретной операции. У меня нет доступа ни к ключевому слушателю, ни к событию мыши. Я надеюсь, что будет какой-то класс, у которого есть метод, подобный «boolean isKeyPressed (keycode)».

Кто-нибудь знает о методе, подобном этому в Java?

Для некоторого фона я пытаясь переопределить стандартное поведение перетаскивания для компонента. По умолчанию, в соответствии с javadocs для DropTargetDragEvent , если не нажимается ни один ключевой модификатор, он просматривает список поддерживаемых действий компонента для перемещения, затем копирует & затем ссылку и останавливается после нахождения первого 1.

В моем приложении мы поддерживаем как копирование, так и ссылку. Согласно javadoc, без нажатой клавиши CTRL, действием по умолчанию является копирование. Мы хотим, чтобы пользователь мог указать действие по умолчанию (позволяя ему установить наиболее часто используемое действие), а затем принудительно назначить конкретное действие с помощью клавиш-модификаторов.

Если я могу обнаружить состояние нажатой клавиши, то могу заставить его выполнить случиться, но я не вижу другого способа изменить действие по умолчанию.

Заранее спасибо, Брайан

6
задан DaddyB 25 August 2010 в 14:51
поделиться