Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Перехват нажатия клавиш / 7 сообщений из 7, страница 1 из 1
22.06.2007, 11:35:34
    #34613032
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
Как в диалоговом окне перехватить все алфавитно-цифровые клавиши по типу:
Код: plaintext
1.
2.
 this .getContentPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
   KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_MASK, true), "search");

то есть, что нужно прописать вместо KeyEvent.VK_F?
...
Рейтинг: 0 / 0
22.06.2007, 12:09:55
    #34613200
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
Попробуй повесить то же самое тоько в мапу JComponent.WHEN_IN_FOCUSED_WINDOW на JRootPane диалога
...
Рейтинг: 0 / 0
22.06.2007, 12:11:19
    #34613204
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
KeyEvent.VK_ALPHANUMERIC ?
...
Рейтинг: 0 / 0
22.06.2007, 12:19:50
    #34613251
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
На Fri, 22 Jun 07 09:09:55 GMT
"Дуремар" <nospam@sql.ru>; записано:

> Автор: Дуремар
> Попробуй повесить то же самое тоько в мапу
> JComponent.WHEN_IN_FOCUSED_WINDOW на JRootPane диалога Тема Ответить
> Сообщение
>
не понял...
мой вариант отлично срабатывает для ctrl+F, независимо от того, где
находится фокус. нужно чтоб он срабатывал также и для случая, когда я
просто начинаю набирать текст.
Код: plaintext
1.
2.
3.
this.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
	KeyStroke.getKeyStroke(KeyEvent.KEY_PRESSED,  0 , true),
"search");
так попробовал - не работает.
есть вариант - пробежать в цикле по A-Za-zА-Яа-я0-9 и добавить
слушателя, но он мне не нравится
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.06.2007, 12:22:07
    #34613266
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
На Fri, 22 Jun 07 09:11:19 GMT
"fixxer" <nospam@sql.ru>; записано:

> Автор: fixxer
> KeyEvent.VK_ALPHANUMERIC ?
> Тема Ответить Сообщение
>
пробовал, не катит. как я понял, VK_ALPHANUMERIC - это для них вообще
какая-то всамоделишняя клавиша.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.06.2007, 12:35:59
    #34613336
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
вот:

Код: plaintext
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.
 import  java.awt.*;
 import  java.awt.event.*;
 import  javax.swing.*;

 public   class  KeyTest  extends  JFrame {

    public  KeyTest() {
      JPanel rootPanel =  new  JPanel();
      setContentPane(rootPanel);
      getContentPane().setLayout( new  BorderLayout());
      setSize( 100 ,  100 );
      rootPanel.add( new  JButton("foo"));
      rootPanel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
         KeyStroke.getKeyStroke(
            KeyEvent.VK_F, KeyEvent.CTRL_MASK, true), "search");

      rootPanel.getActionMap().put("search",  new  AbstractAction() {
             public   void  actionPerformed(ActionEvent e) {
                System.out.println("Success");
            }
        });
      setVisible(true);
   }

    public   static   void  main(String[] args) {
       new  KeyTest();
   }
}

щас отрабатывает для Ctrl+F, как сделать чтоб отрабатывало для любого
нажатия на клавишу?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.06.2007, 12:48:32
    #34613394
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатия клавиш
Deady
На Fri, 22 Jun 07 09:09:55 GMT
"Дуремар" <nospam@sql.ru>; записано:

> Автор: Дуремар
> Попробуй повесить то же самое тоько в мапу
> JComponent.WHEN_IN_FOCUSED_WINDOW на JRootPane диалога Тема Ответить
> Сообщение
>
не понял...
мой вариант отлично срабатывает для ctrl+F, независимо от того, где
находится фокус. нужно чтоб он срабатывал также и для случая, когда я
просто начинаю набирать текст.
Код: plaintext
1.
2.
3.
this.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
	KeyStroke.getKeyStroke(KeyEvent.KEY_PRESSED,  0 , true),
"search");
так попробовал - не работает.
есть вариант - пробежать в цикле по A-Za-zА-Яа-я0-9 и добавить
слушателя, но он мне не нравится
Posted via ActualForum NNTP Server 1.4
Sorry - фигню спорол - не проснулся еще :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Перехват нажатия клавиш / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]