![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Connie |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
Здравствуйте!
Есть таблица из двух колонок, вторая колонка редактируемая, в ней double Для этой колонки устанавливается свой редактор, вместо дефолтного по той причине. что дефолтный требует вводить точку, вместо запятой как разделитель дробной и целой части
Все работает если войти в редактирование значения кликнув мышкой по ячейке: начинается редактирование, после нажатия Enter значение присваивается и фокус остается на этой ячейке Если же начать набирать значение или левые символы в тот момент, когда фокус находится на нужной ячейке, то вроде бы происходит редактирование, но присваивания значения после нажатия Enter или перемещения указателя другим способом ячейке (значению в массиве, в модели таблицы) не происходит, зато фокус перемещается к следующей ячейке, а этого хотелось бы достигнуть при нормальном вводе. |
||||
|
|||||
| alexsaltykov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.8.2007 Репутация: нет Всего: нет |
В модели таблицы переопредели метод setValueAt
для того что бы введенное значение записывало в твою модель данных |
|||
|
||||
| Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
alexsaltykov, есть этот метод, иначе бы вызывался редактор, но значение бы не запоминалось
В том то и дело, что по разному происходит обратотка. Если кликнуть мышкой, то начинает работать JFormattedTextField и работает так, как ему и положено. А вот при начале ввода с клавиатуры, вызывается какой то другой редактор... |
|||
|
||||
| alexsaltykov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.8.2007 Репутация: нет Всего: нет |
модель таблицы выложи
|
|||
|
||||
| alexsaltykov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.8.2007 Репутация: нет Всего: нет |
Попробуй изменить этот метода
|
|||
|
||||
| Connie |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
alexsaltykov, уезжал, не мог ответить
Я принудительно у таблицы менял локаль, что бы при вводе числа double дефолтный редактор использовал запятую, а не точку, но толку нет
Object [] [] tableData = {{"раз",1.5},{"два",2.5},{"три",3.5}} Тот который выложу сложнее, но работа такая же
вообщем то работа с другим редактором (JFormattedTextField) получается, проблема в том, как запретить начало редактирования при попадании фокуса на ячейку и ввода с клавиатуры или же как при таком событии вызывать именно тот редактор, который действительно нужен (JFormattedTextField) |
||||||
|
|||||||
| alexsaltykov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.8.2007 Репутация: нет Всего: нет |
DoubleEditor сделал на основе JTExtField
так как на основе JFormattedTextField() не получилось почему-то но работает нормально и с точкой и с запятой единственно может надо добавить метод на проверку ввода только цифр вообщем попробуй...
|
|||
|
||||
| Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
Нашел что хотел
http://lists.apple.com/archives/java-dev/2...n/msg00329.html Теперь после набора текста при выделенной ячейке, запускается мой редактор основанный на JFormattedTextField |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |