Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие клавиши - запрет обработки, не дать системе обработать перехваченую  
:(
    Опции темы
DOKA
Дата 10.6.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Есть программа, которая распахивается на полный экран, перекрывая всё и вся, и отслеживает нажатия клавиш клавиатуры.
Проблема следующая: если пользователь нажимает Windows_key или Popup_key, то
1) Теряется фокус у моего окна (оно больше не ловит клавиши)
2) Над ним открывается или меню пуск или ещё какая-нибудь лабуда.

Вот код
Код

    public void keyPressed(KeyEvent e) 
    {
               // Хочу запретить Windows'у обрабатывать эту клавишу
    }


    public void keyReleased(KeyEvent e) 
    {
               // Хочу запретить Windows'у обрабатывать эту клавишу
    }

Хочется запретить системе обрабатывать какие-либо клавиши. Кто знает как?
PM MAIL   Вверх
filipp76
Дата 10.6.2007, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



Цитата(DOKA @  10.6.2007,  00:20 Найти цитируемый пост)
Есть программа, которая распахивается на полный экран, перекрывая всё и вся, и отслеживает нажатия клавиш клавиатуры

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

Вот пример, тут не обрабатывается нажатие клавиши Enter, соответственно подставляй что надо и все будет гуд.  
Код

        editor.addKeyListener(new KeyAdapter()
        {
            public void keyPressed( KeyEvent e ) {
                switch(e.getKeyCode()) {
                    case KeyEvent.VK_ENTER:
                        e.setKeyCode(0);
                        e.setKeyChar('\0');
                        break;
                }
            }
        });



PM MAIL WWW ICQ   Вверх
DOKA
Дата 10.6.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Цитата(filipp76 @ 10.6.2007,  12:42)
В программе не обрабатывать нажатия клавиш очень просто, смотри код ниже.

Я может немножко мутно сформулировал задачу.
Смысл не в том, чтобы моя программа не ловила клавишу, а в том чтобы Windows далее её не обрабатывал.

Теперь я делаю e.consume() и popup_key & alt+F4 действительно перестают обрабатываться.

НО! Но Windows продолжает обрабатывать нажатия Windows_key и Ctrl+Alt+Del и вызывает меню "Пуск" и диспетчер задач соответственно, что мне крайне не хотелось бы (по крайней мере меню Пуск - точно).
PM MAIL   Вверх
filipp76
Дата 10.6.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



хм..действительно вылазит.

Это сообщение отредактировал(а) filipp76 - 10.6.2007, 13:06
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.