![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Вообщем-то, вот одна обрабока событий в котором я получаю некоторые данные(userId, recordId) и пытаюсь их передать в другую mi1.addMouseListener(new Item1Click(userId, recordId));, но они не передаются. Как еще их можно передать, или куда еще можно запихнуть обработку mi1.addMouseListener(new Item1Click(userId, recordId));, чтоб мои данные передовались?
-------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
А ты уверен, что они не передаются? Может, передаются, но равны null?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
интересно, а что за класс Item1Click ? И хотелось бы узнать зачем в Listener создавать JMenuItem. Это не очень красиво выглядит. |
|||
|
||||
Bulat |
|
||||||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Ну естественно, передается null, но здесь я их получаю, а передается null, что соответственно = не передается. Добавлено @ 14:27
Если тебе так интересно, но тут ничего интересного нет ![]()
Ну давай разберем, этот момент. Мне нужно динамически создающееся popupmenu, на каждый пункт(при нажатии) необходимо навешать обработку. Если ты мне предложишь более лучший и подходящий вариант с удовольствием его разберу ![]() Уж звыняйте, но на яве писал кое-что, но именно c GUI первый проект и сразу довольно серьезный. -------------------- менеджер по кодеврайтингу ![]() |
||||||
|
|||||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
при таком раскладе, конструктору Item1Click в качестве параметром всегда будет передаваться null. Поскольку, public MouseClick(JTable t, JPopupMenu pm) - это конструктор и выполняется при создании объекта MouseClick, а поля userId, recordId в момент выполнения конструктора значений не имеют. P.S.: Хотя странно, мне всегда казалось, что компилятор ругается, если использовать не инициализированные ссылки на объекты... ![]() |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Я это уже понял. Смотри, допустим я перекину все пункты меню в основной форму, там набросаю обработку действий, а данные буду получать через getter'ы: в MouseClick пропишу getter'ы для моих переменных, а потом в Item1Click буду вызывать MouseClick и соответственно getter. Если так сделать? Добавлено @ 15:29 Попробовал, пока не получается -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Тогда получается, что Item1Click должен иметь ссылку на MouseClick, чтобы иметь возможность вызывать его getter методы. Мне бы хотелось услышать для реализации какой функциональности это все необходимо. Поскольку может быть динамическое меню, а может быть динамическая обработка (т.е не только обрабатываемые данные, но и алгоритм меняется) , и может решение гороздо проще чем кажется. ![]() |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Моя фантазия ![]() В принципе надо: выбрал в таблице строку, нажал правой кнопкой мышки, выпало меню, нажал левой кнопкой мышки на одном из пунктов, появился соответствующий JDialog. при этом там туда-сюда передавать некоторые данные. Есть у меня такой минус: я еще это не дописал, а у меня в голове крутятся мысли как еще улучшить свой проект ![]() Это сообщение отредактировал(а) Bulat - 14.6.2006, 15:56 -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Т.е. меню постоянное. В обработчике нажатия на пункт контекстного меню, нужно собрать все необходимые для дальнейшей обработки данные. Например кординаты выбранной ячейки в таблице, или её значение, ссылки на другие элементы. Потом эти данные используются для создания нового потока обработчика. Этот поток и будет инициализировать и показывать твой диалог, а также производить всю необходимую длительную обработку. Типичное делегирование. Т.е. Выбрали ячейку -> щелк. правой кнопкой мыши -> отобразили меню -> выбрали пункт меню, Обработка выбора пункта меню собирает всю необходимую инфу, создает новый поток-обработчик и запускает его. Поток обработчик в свою очередь уже занимется отображением необходимых диалогов и других действий... Все компоненты и всех слушателей можно создать один раз, различие в работе будет обусловленно только передаваемыми данными. Что будет создаваться каждый раз заново, так это поток-обработчик. Ну, а ему по должности велено. ![]() |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Все, все, все доперло!
![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |