![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| StormDK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 5.4.2007 Репутация: нет Всего: нет |
Понимаю, вопрос, вообщем, стандартный, но опыта мало... не пойму ни как - как JButton засунуть в столбец JTable, ну и обработчик на каждую кнопку повесить.
(Так же хочется прогресс бар в один столбец положить, ну тут я понимаю, что это делается так же как и с кнопокой.) Последовательность выполнения действий хочу понять, а то каша в голове. Заранее спасибо. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
1. Определяешь свою модель
2. У модели перекрываешь метод определения типа столбца 3. Делаешь свой CellEditor и CellRenderer А вообще лучше тебе побродить немного по http://www.java2s.com/ - там есть множество примеров по таблицам. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| olesja |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 6.5.2007 Репутация: 2 Всего: 2 |
||||
|
||||
| Strange74 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.10.2006 Где: Танкоград Репутация: нет Всего: нет |
За пример большой респект! Но!
Хочется сделать все это через TableModel. Я определил свою TableModel и хочется использовать вот эти классы ButtonRenderer и ButtonEditor в TableModel. В общем то как я понял проблемы 2: какой тип для полей с кнопочками возвращать в методе getColumnClass и какое знаечение возвращать в методе getValueAt. Кто знает ответы на эти вопросы - поделитесь плиз. А то вся дока в основном сводится к тому что задаем DefaultTableModel а дальше мучаем саму таблицу. Но это ведь не правильно! |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
По getColumnClass() возвращай, например, JButton.
У таблицы тебе надо прописать твои редактор и рендерер:
А вот насчёт getValueAt() точно не скажу - надо знать, что за кнопки ты отображаешь и что в рендерер/эдитор передаёшь. Если ничего, то можешь просто игнорировать. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Strange74 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.10.2006 Где: Танкоград Репутация: нет Всего: нет |
Спасибо большое! Вроде разобрался с отображением кнопок
В getValueAt действительно возвращать ничего не надо. Но есть вопрос: кнопочка не нажимается. Т.е. не рисуется ее нажатие. И еще: как на нее слушатель повесить? Подскажите плиз! |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Ты редактор делал? Делал. Кнопку на нём использовал? Использовал. Вот на неё и надо листенер приделать. Как сделать это правильнее в твоей программе сказать просто так сложновато, ибо нужно видеть код и знать, что и для чего у тебя там задумано. А редактирование ячейки ты разрешил? -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Strange74 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.10.2006 Где: Танкоград Репутация: нет Всего: нет |
Спасибо Огромное спасибо! Редоктирование то я как раз запретил )) Все экшн срабатывает, осталось только различать какая кнопка нажата, но это я думаю справлюсь.
Хочу еще попробовать через Actions потом сделать, тоже поковыряюсь. Спасибо еще раз! Добавлено через 8 минут и 11 секунд Кстати вот тут вопрос у меня возник по поводу где повесить листенер
Вопрос такой: разумно ли вешать листенер именно в данном месте кода. Дело в том, что в каждой строке несколько кнопок и соответственно при нажатии на каждую должны вызываться разные Actions. Как это будет с точки зрения перфоманса и вообще дизайна? Еще есть такая идея: сделать несколько Actions, у каждого объявить иконку и обработчик. И вешать это дело на кнопки в рендерире. Меня немного смущает тот факт что вид кнопки мы выставляем в ButttonRenderer а обработчик вешаем в ButtonEditor. Как то это не совсем логично. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Попробуй и узнаешь. Самое смешное, что у тебя листенеры будут накапливаться. В общем, "перформанс" у тебя будт тем лучше, чем меньше будешь жать на кнопки. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Strange74 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.10.2006 Где: Танкоград Репутация: нет Всего: нет |
Поэтому я и не стал так делать, я просто создал несколько нужных мне классов Actions и просто делаю button.setActions. Думаю так будет правильнее.
|
|||
|
||||
![]()
|
| Правила форума "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. |