Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
53 / 53 / 39
Регистрация: 05.12.2010
Сообщений: 261

Обработка нажатия нескольких клавиш в Java Swing

21.10.2015, 13:09. Показов 7547. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день!

Как обработать нажатия одной клавиши с клавиатуры - все кристально понятно. А если, предположим, необходимо сделать обработку нажатия ctrl + alt + q и сделать, предположим, 2 кнопки на JPanel видимыми, как это можно реализовать?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2015, 13:09
Ответы с готовыми решениями:

Обработка нажатия/отпускания нескольких клавиш
Много прочитал про одновременное нажатие 2-х и более клавиш. Однако у меня такая история. Жму я клавишу D, и герой у меня идет. У меня...

Распараллеливание обработчиков нажатия кнопок SWING JAVA
Добрый день! Интересует следующий вопрос: Можно ли как-нибудь разбить на потоки обработчики кнопок, если они описаны все в одной функции? и...

Обработка нажатия клавиш
Помогите, пожалуйста понять где ошибка. Есть функции: Move - двигает прямоугольник по консоли в зависимости от того, какая нажата...

3
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
21.10.2015, 13:26
keyPress...

Зажата, запомнили её, Отпущена, обнулили

если keyPress у двух, то у нас 2 клавиши зажаты (они всё равно нажимаются по порядку, просто на столько быстро всё обрабатывается, что кажется, что одновременно)

Добавлено через 2 минуты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
JComponent.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {
                
            }
 
            @Override
            public void keyPressed(KeyEvent e) {
 
                super.keyTyped(e);
                char key = e.getKeyChar();
                if (key == KeyEvent.VK_CTRL) ctrl = true;
  
            }
 
            @Override
            public void keyReleased(KeyEvent e) {
                  super.keyTyped(e);
                char key = e.getKeyChar();
                if (key == KeyEvent.VK_CTRL) ctrl = false;
            }
        });
Добавлено через 4 минуты
типа такого...

нажата клавиша, запоминаем её, нажата следующая запоминаем

если на данный момент нажаты 3 нужных, то что-то выполняем

если отпущена клавиша, то обнуляем отпущенную
2
53 / 53 / 39
Регистрация: 05.12.2010
Сообщений: 261
21.10.2015, 13:49  [ТС]
Цитата Сообщение от ArtemFM Посмотреть сообщение
Зажата, запомнили её, Отпущена, обнулили
если keyPress у двух, то у нас 2 клавиши зажаты (они всё равно нажимаются по порядку, просто на столько быстро всё обрабатывается, что кажется, что одновременно)
Оказывается, есть уже встроенные bool переменные, которые отвечают за то, нажаты ли ctrl и alt, в результате код будет следующим:

Java
1
2
3
4
public void keyPressed(KeyEvent e) {
                if (e.isAltDown() && e.isControlDown() && e.getKeyCode() == KeyEvent.VK_Q)
                    System.out.println("ctrl + alt + q!");
            }
Но спасибо за альтернативное решение!
1
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
21.10.2015, 13:55
Ну да, ну да, действительно проще ) Спасибо и Вам за новую информацию!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2015, 13:55
Помогаю со студенческими работами здесь

Обработка нажатия клавиш
Необходимо не просто узнать какая клавиша нажата, а и знать нажата ли она в любой момент времени. То есть, когда я зажимаю кнопку,...

Обработка нажатия клавиш
Здравствуйте! Необходимо решить следующую задачу: Есть консольное приложение, которое разрабатывается с использованием C++, с...

Обработка нажатия клавиш
Доброго времени суток.Нужно решить такую задачку. Разработать алгоритм и написать резидентную программу, сопровождающую нажатие клавиш...

Обработка нажатия клавиш
procedure TForm1.HandleMessages(var Msg: TMsg; var Handled: Boolean); begin if (Msg.message = WM_KeyDown) AND (Msg.wParam in )...

Обработка нажатия клавиш
Как сделать так, чтобы при нажатии на стрелочку вверх на клавиатуре, делалось какое-то действие, например, менялся текст в Label1. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru