| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > JTable - попытка убрать недовведенный ряд |
| Автор: _Y_ 31.12.2010, 14:32 | ||
Обнаружил вот такой "феномен". Имеем табцицу JTable и две кнопки. Одна кнопка добавляет ряд к таблице, другая убирает все пустые ряды. Теперь делаем так (вариант А):
Вот код программы:
|
| Автор: jk1 31.12.2010, 14:51 | ||||
| Мне известно два способа решения проблемы. Первый:
его можно вызывать для каждой ячейки каждого удаляемого столбца. Решение, прямо скажем, далекое от оптимального. Второй способ - конфигурирование самой таблицы. При создании нужно будет сделать следующее:
При попытке нажатия на кнопку таблица теряет фокус и, согласно установленному property, выходит из режима редактирования автоматически. |
| Автор: _Y_ 31.12.2010, 15:18 |
| jk1, спасибо, jTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); рулит. Я до такого простого решения не додумался. Кстати, а где бы посмотреть как и почему это ClientProperty функционирует? |
| Автор: jk1 31.12.2010, 16:42 | ||
Client Properties - это механизм, обеспечивающий унификацию механизма задания различных свойств. Если посмотреть внимательно, то оказывается что он реализован в JComponent и наследуется подавляющим большинством Swing-компонент. На уровне конкретного компонента определяется только то, какие property он способен понять и применить. Ничего экстраординарного в этой модели нет, можно было бы с тем же успехом наделать специфических методов для каждого компонента. А изнутри компонента совершенно все равно каким образом было установлено то или иное свойство поведения\состояния. Внутри компонента Client Properties хранятся в отдельной хэш-таблице. Таким образом, Client Properties - всего лишь еще один способ конфигурирования Swing-компонент, наряду с setXXX() методами. Для справки можно пользоваться http://www.chka.de/swing/components/client_properties.html. Что меня всегда удивляло, так это отсутствие нормальной документации от производителя по этому вопросу. И, кстати, гарантий работы этого механизма в будущем тоже. |
| Автор: _Y_ 31.12.2010, 19:41 |
| jk1, теперь вроде понятно. Про такой хэш я знал. Чего не знал - что добавляя в таблицу Property уже определенное в данном компоненте (ссылка, которую ты привел), устанавливаешь значение этого Property. Спасибо! |
| Автор: dorogoyIV 1.1.2011, 12:02 |
| + для jk1 (_Y_ с тебя), реально заслужил |
| Автор: _Y_ 1.1.2011, 12:18 |
| dorogoyIV, а я сразу должное отдал |