С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
6 / 6 / 0
Регистрация: 17.08.2017
Сообщений: 141

Современный способ создания горячих клавиш для меню

19.09.2018, 21:19. Показов 3608. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста, как правильно добавлять "горячие" клавиши к пунктам меню библиотеки Swing.
Java
1
MyBox.getNewTest().setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
Среда разработки IntelliJ IDEA 2018.1 перечёркивает CTRL_MASK как устаревший. Если вместо InputEvent.CTRL_MASK использую Event.CTRL_MASK, то перечёркивается слово Event.
При использовании кода
Java
1
JMenuItem newTest = new JMenuItem("Новый тест", KeyEvent.VK_N)
просто ничего не происходит.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2018, 21:19
Ответы с готовыми решениями:

Реализация горячих клавиш для элементов меню
Подскажите, пожалуйста, как добавить функционал горячих клавиш для элемента Menu? Написать сокращение можно ...

Какой способ реализации горячих клавиш лучше?
Прочитал множество топиков на форуме и статей в инете на эту тему, и так и не понял, какой вариант является "каноничным". В...

Регистрация горячих клавиш для приложения
Доброго времени суток уважаемые! Возник вопрос о регистрации горячих клавиш для приложения. По задумке, действие должно происходить в...

14
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
19.09.2018, 22:16
Иван24, современный способ — не использовать swing и вообще Java для GUI.
0
Нет ТЗ - давай досвидания
 Аватар для BuPy7
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
Записей в блоге: 6
19.09.2018, 23:54
korvin_, а что использовать?
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
20.09.2018, 09:25
Немного не понятен вопрос, а именно что вам нужно, вы хотите чтобы при нажатии на определенную клавишу срабатывало кнопка в вашем меню ? Или при нажатии кнопки меню срабатывала определенная клавиша ?

Тогда для:
1. Можно сделать слушатель клавиш на JFrame и вызывать любой конструктор;
2. Есть замечательная штука как Robot (благодаря ему я написал шикарнейший виртуальный джойстик для своего сенсорного ПК).
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
20.09.2018, 10:38
Лучший ответ Сообщение было отмечено Иван24 как решение

Решение

Цитата Сообщение от BuPy7 Посмотреть сообщение
а что использовать?
Для Windows desktop — C#, для Linux desktop — GTK/Qt, для macOS — Swift+Cocoa. Qt при этом более-менее кросс-платформенен. Есть ещё совсем новомодный Electron (JS).

Цитата Сообщение от Иван24 Посмотреть сообщение
При использовании кода
Java
1
JMenuItem newTest = new JMenuItem("Новый тест", KeyEvent.VK_N)
просто ничего не происходит.
Потому что это ты добавил мнемонику (то, что по Alt работает).

Попробуй так:
Java
1
2
3
JMenuItem newTest = new JMenuItem("Новый тест");
KeyStroke ctrlNKeyStroke = KeyStroke.getKeyStroke("control N");
newTest.setAccelerator(ctrlNKeyStroke);
http://www.java2s.com/Tutorial... nuitem.htm
2
6 / 6 / 0
Регистрация: 17.08.2017
Сообщений: 141
20.09.2018, 11:41  [ТС]
Nidl,
Цитата Сообщение от Nidl Посмотреть сообщение
чтобы при нажатии на определенную клавишу срабатывало кнопка в вашем меню
Добавлено через 3 минуты
Цитата Сообщение от korvin_ Посмотреть сообщение
Потому что это ты добавил мнемонику (то, что по Alt работает).
korvin_, поясните, пожалуйста.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
20.09.2018, 12:43
Цитата Сообщение от Иван24 Посмотреть сообщение
поясните, пожалуйста.
https://en.wikipedia.org/wiki/Mnemonics_(keyboard)
0
6 / 6 / 0
Регистрация: 17.08.2017
Сообщений: 141
20.09.2018, 12:52  [ТС]
Вот если бы по-русски было написано...
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.09.2018, 13:29
Цитата Сообщение от Иван24 Посмотреть сообщение
Вот если бы по-русски было написано...
https://translate.google.ru/
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
20.09.2018, 13:49
Цитата Сообщение от Иван24 Посмотреть сообщение
Вот если бы по-русски было написано...
Там картинка есть
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
20.09.2018, 15:28
1. Можно сделать слушатель клавиш на JFrame и вызывать любой конструктор;
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
 
 
 
public class ColorText
{
    public JFrame win = new JFrame();
    
    
    public ColorText()
    {
        makeWindow();
    }
    
    
    private void makeWindow()
    {
        win.setSize(800, 600);
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        win.setResizable(false);
        win.setLayout(null);
        win.setLocationRelativeTo(null);
        win.setVisible(true);
        
        win.addKeyListener(new KeyListener()
        {
            @Override
            public void keyPressed(KeyEvent e)
            {
                if (e.isControlDown() && e.getKeyChar() != 'a' && e.getKeyCode() == 65)
                {
                    System.out.println("Ctr+a"); 
                }
            }
 
            @Override
            public void keyReleased(KeyEvent e)
            {
                //
            }
 
            @Override
            public void keyTyped(KeyEvent e)
            {
                //
            }
             
        });
    }
    
 
    public static void main(String[] args)
    {
        new ColorText();
    }
}
а мне JAVA все же нравиться. С С# незнаком сравнить не могу, знаю лишь ненужные AS1-3, и к этому VBA, немного верстки и JavaScript. Для декстопных приложений в Java GUI чувствую себя комфортно )
1
Нет ТЗ - давай досвидания
 Аватар для BuPy7
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
Записей в блоге: 6
21.09.2018, 02:49
Цитата Сообщение от korvin_ Посмотреть сообщение
Для Windows desktop — C#, для Linux desktop — GTK/Qt, для macOS — Swift+Cocoa. Qt при этом более-менее кросс-платформенен. Есть ещё совсем новомодный Electron (JS).
Человек сделал UI (frontend) на одном из вышеперечисленных, что насчет backend?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
21.09.2018, 11:27
Цитата Сообщение от BuPy7 Посмотреть сообщение
Человек сделал UI (frontend) на одном из вышеперечисленных, что насчет backend?
Что ему больше нравится.
0
Нет ТЗ - давай досвидания
 Аватар для BuPy7
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
Записей в блоге: 6
21.09.2018, 13:41
Цитата Сообщение от korvin_ Посмотреть сообщение
Что ему больше нравится.
И что нравиться Вам?
0
21.09.2018, 18:29

Не по теме:

Цитата Сообщение от BuPy7 Посмотреть сообщение
И что нравиться Вам?
Я не пишу кросс-платформенный десктопный софт, слава б-гу. И выбор-то там не большой: либо писать Сишную библиотеку (ну или на C++ с Сишным интерфейсом), либо отдельное сервисное приложение (почти) на чём угодно и общаться с ним по сокету. У обоих вариантов свои плюсы и минусы, выбирал бы в зависимости от объёма работы: для относительно малого — Сишную библиотеку, для большого — отдельное приложение, возможно, на Go.

Как вариант, библиотеку можно ещё на FreePascal'е написать, если от C/C++ воротит, например.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2018, 18:29
Помогаю со студенческими работами здесь

Присваивание горячих клавиш для сторонней программы
Добрый день! Подскажите, пожалуйста, возможно ли средствами VBA распознать кнопки сторонней программы и воздействовать на них с...

Где посмотреть в ubuntu назначения горячих клавиш для работы с терминалом(работаю с xterm)
Здравствуйте, хотелось бы поменять назначения некоторых горячих клавиш в терминале xterm. Где можно посмотреть стандартные назначения и как...

Как в среде Embarcadero с соучастием горячих клавиш добавлять необходимые для функций библиотеки?
Аналогично среде eclipse для JAVA - там SHIFT + CTRL + O, существует ли вообще для Embarcadero сводка горячих клавиш для такких...

Работа с файлами, какой способ сейчас современный?
Есть программа с настройками и базой данных. Задача сохранить/прочитать настройки и данные базы в файл со своим расширением, а ля...

Обработка горячих клавиш
Нарисовал форму. Добавил меню. К командам меню «добавил горячие клавиши» А теперь все компоненты, которые размещены на форме...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru