![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
miroque |
|
|||
![]() Java EE developer Профиль Группа: Участник Сообщений: 25 Регистрация: 13.4.2007 Репутация: нет Всего: нет |
Здравствуйте.
Пишу собственный ученический проект. Но чтото я запутался во всех этих слушателях и событиях. Помогите разобраться как по умному сделать следующую задачу: ![]() На Главном окне, две Панели(выделено фиолетовой рамкой): Вверху мой компонент MyComponent extends JPanel Внизу JTable в MyComponent 3 подпанельки (выделены красным), в каждой из панели ряд из JLabel с текстом (буква или цифра). Результат работы: Выделяем ячейку, в ту которую хотим заносить символы. И нажимаем мышкой на JLabel с цифрой или буквой, и ее значение заносится в "активную" или "редактируемую" ячейку таблицы. Вариант некой виртуальной клавиатуры. Только я что то запутался, кто из них должен быть слушателем, а кто события генерит. Или использовать шаблон проектирования "Наблюдатель"? сделать таблицу наблюдателем, а ряды с JLabels сделать субъектами? Но мне кажется можно воспользоваться уже готовыми Listeners, их в каждом из объектов на всякий случай жизни. Помогите увидеть направление в какую сторону идти? |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
как то так наверное:
|
|||
|
||||
miroque |
|
|||
![]() Java EE developer Профиль Группа: Участник Сообщений: 25 Регистрация: 13.4.2007 Репутация: нет Всего: нет |
dorogoyIV, спасибо за первую подскзаку!
Сейчас мало времени проверить и соединить решение с моим кодом. Надеюсь получится проверить на выходных. |
|||
|
||||
miroque |
|
|||
![]() Java EE developer Профиль Группа: Участник Сообщений: 25 Регистрация: 13.4.2007 Репутация: нет Всего: нет |
dorogoyIV, спасибо за подсказку!
Опробовал на выходных этот подход. И увидел, что да, Листенером должны быть эти вот самые "кнопки", которые JLabel. А я то думал что мне нужно реализовывать Листенер на Таблице. Вроде как, Таблица слушает, а нажал ли кто нибудь на "кнопку" и сама у себя смотрит а какая ячейка активная, и в нее записывать информацию с JLabel. Опробовал на практике, и получилось, что Листенером должны быть JLabel, в частности MouseListener. А дальше основная подсказка еще вот в этом получилась
Но поскольку у меня в таблице не просто текст лежит, а объект, который можно представить одной строчкой, с тремя полями. То я уже использую свой класс который расширяет TableModel. И тут для меня открылось, что мне еще нужно изучать подход, Вид-Логика-Представление. Т.е. свои объекты я запихал в TableModel, и эту модель в JTable положил, и теперь взаимодействие изменилось для меня. Что то нужно вытворять на JTable и как на эти действия будет регировать TableModel. Интересная тема, буду дальше исследовать и изучать. Спасибо за направление моей мысли. Ответ я получил, тему закрываю решенной. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |