![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
Если при редактировании таблица теряет фокус, то ячейка так и повисает в редактировании
и значение не сохраняется. Ну думаю ладно думаю, повесил листенер на потерю фокуса: public void focusLost(FocusEvent e) { super.focusLost(e); if (tab.getDefaultEditor(Class.class) != null) { tab.getDefaultEditor(Class.class).stopCellEditing(); } } Появилась другая проблема. Теперь при нажатии на ячейку редактирование начинается с третьего клика. Как это победить. И еще такой вопрос, как сделать, чтобы по интеру фокус в таблице перемещался слева направо, а не сверху вниз. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Мда-а-а-а. Я тут повозился почти час - никаких идей. Если что найду - напишу. Если найдешь сам - дай знать. Очень интересно стало - как такое сделать ?
|
|||
|
||||
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
Короче я весь уже запутался в этих фокусах.
Чего удалось добиться: Получился некоторый комромиссный вариант, если начать редактирование, просто кликнув мышкой на ячейку, чтобы она выделилась, то при потере фокуса она сохраняется. Также заработало редактирование по двойному клику, но если писать так, то при потере фокуса все опять висит. Не пойму почему, вроде как два разных редактора используются. Причем если делать первым способом,то по нажатию Enter фокус переходит в соседнюю ячейку, а если вторым - то нет. public void focusLost(FocusEvent e) { super.focusLost(e); Component c = e.getOppositeComponent(); if (c != null) if (c.getParent() != null) { if (!c.getParent().equals(tab)) { if (tab.isEditing()) { tab.getCellEditor().stopCellEditing(); } } } } Перемещением курсора еще не занимался. |
|||
|
||||
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
Перемещение слева направо можно сделать всего одной строчкой, я просто офигел.
table.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "selectNextColumnCell"); Blazkowicz помог |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |