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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как выйти из editor по ENTERу 
V
    Опции темы
skif18
Дата 30.11.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Объявление режима редактирования для ячейки таблицы.
Код

     javax.swing.text.JTextComponent editor = (javax.swing.text.JTextComponent) jTable.getEditorComponent();
                            editor.requestFocus(); 
       
                            if (editor instanceof JTextComponent)
                            { 
                                ((JTextComponent)editor).selectAll();  
                                String str = Character.toString(e.getKeyChar());
                                ((JTextComponent)editor).setText(str);
                            }


как выйти из редактирования по нажатию клавиши ENTER?


--------------------

PM MAIL ICQ   Вверх
mgarin
Дата 1.12.2009, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код
        editor.addKeyListener ( new KeyAdapter()
        {
            public void keyReleased ( KeyEvent e )
            {
                if ( e.getKeyCode () == KeyEvent.VK_ENTER )
                {
                    table.getCellEditor ().stopCellEditing ();
                }
            }
        } );

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


Опытный
**


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

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



Код

 if(e.getKeyCode() >= KeyEvent.VK_0  && e.getKeyCode() <= KeyEvent.VK_9 || e.getKeyCode() >= KeyEvent.VK_NUMPAD0  && e.getKeyCode() <= KeyEvent.VK_NUMPAD9)
                        {

                          JTextComponent editor = (JTextComponent) jTable.getEditorComponent();
                           editor.addKeyListener ( new java.awt.event.KeyAdapter()
                            {
                                public void keyReleased ( KeyEvent e )
                                {
                                 
                                    if ( e.getKeyCode () == KeyEvent.VK_ENTER )
                                    {

                                      
                                        jTable.getCellEditor ().stopCellEditing ();
                                        
//                                        jTable.changeSelection(0,0, false, false);
                                        jTable.requestFocus();
                                      
                                    }
                                }
                            } );
                            editor.requestFocus(); // fix
       
                            if (editor instanceof JTextComponent)
                            { 
                                ((JTextComponent)editor).selectAll();  // а это так, бонус...
                                String str = Character.toString(e.getKeyChar());
                                ((JTextComponent)editor).setText(str);
                            }
                        }    


Это условие расположено в методе  keyReleased() KeyListener'a таблицы.
Но у меня он не входит в   

e.getKeyCode () == KeyEvent.VK_ENTER 
это условие. ставлю сообщение и ничего. мертво.

Это сообщение отредактировал(а) skif18 - 1.12.2009, 10:44


--------------------

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


Шустрый
*


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

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



Значит у вас либо у компонента-едитора нет фокуса, 
либо вообще не заходит в листенер по другой причине.
Если же заходит - посмотрите какой код выдает событие и пропишите сравнение вручную.
PM MAIL WWW ICQ   Вверх
skif18
Дата 8.12.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



воспользовался старым  
Код

    jTable.editCellAt(rowIndexStart,ColumnSel);



--------------------

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

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

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


 




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


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

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