| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > вносить значения в ячейку JTable из JLables |
| Автор: miroque 13.3.2013, 05:36 |
| Здравствуйте. Пишу собственный ученический проект. Но чтото я запутался во всех этих слушателях и событиях. Помогите разобраться как по умному сделать следующую задачу: ![]() На Главном окне, две Панели(выделено фиолетовой рамкой): Вверху мой компонент MyComponent extends JPanel Внизу JTable в MyComponent 3 подпанельки (выделены красным), в каждой из панели ряд из JLabel с текстом (буква или цифра). Результат работы: Выделяем ячейку, в ту которую хотим заносить символы. И нажимаем мышкой на JLabel с цифрой или буквой, и ее значение заносится в "активную" или "редактируемую" ячейку таблицы. Вариант некой виртуальной клавиатуры. Только я что то запутался, кто из них должен быть слушателем, а кто события генерит. Или использовать шаблон проектирования "Наблюдатель"? сделать таблицу наблюдателем, а ряды с JLabels сделать субъектами? Но мне кажется можно воспользоваться уже готовыми Listeners, их в каждом из объектов на всякий случай жизни. Помогите увидеть направление в какую сторону идти? |
| Автор: dorogoyIV 13.3.2013, 12:17 | ||
как то так наверное:
|
| Автор: miroque 14.3.2013, 07:41 |
| dorogoyIV, спасибо за первую подскзаку! Сейчас мало времени проверить и соединить решение с моим кодом. Надеюсь получится проверить на выходных. |
| Автор: miroque 26.3.2013, 04:31 | ||
| dorogoyIV, спасибо за подсказку! Опробовал на выходных этот подход. И увидел, что да, Листенером должны быть эти вот самые "кнопки", которые JLabel. А я то думал что мне нужно реализовывать Листенер на Таблице. Вроде как, Таблица слушает, а нажал ли кто нибудь на "кнопку" и сама у себя смотрит а какая ячейка активная, и в нее записывать информацию с JLabel. Опробовал на практике, и получилось, что Листенером должны быть JLabel, в частности MouseListener. А дальше основная подсказка еще вот в этом получилась
Но поскольку у меня в таблице не просто текст лежит, а объект, который можно представить одной строчкой, с тремя полями. То я уже использую свой класс который расширяет TableModel. И тут для меня открылось, что мне еще нужно изучать подход, Вид-Логика-Представление. Т.е. свои объекты я запихал в TableModel, и эту модель в JTable положил, и теперь взаимодействие изменилось для меня. Что то нужно вытворять на JTable и как на эти действия будет регировать TableModel. Интересная тема, буду дальше исследовать и изучать. Спасибо за направление моей мысли. Ответ я получил, тему закрываю решенной. |