Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как добавить слушателя в собственный класс? / 14 сообщений из 14, страница 1 из 1
10.08.2016, 06:36
    #39289366
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Здравствуйте.

Есть класс:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class PM7LTypes extends Panel{ 

     public PM7LTypes(){
     ...
     ...
     CheckBox cb1 = new CheckBox ("Caption1");
     cb1.addValueChangeListener(new Property.ValueChangeListener() {
            @Override
            public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
               .....
               .....
            }
        });

     CheckBox cb2 = new CheckBox ("Caption2");
     cb2.addValueChangeListener(new Property.ValueChangeListener() {
            @Override
            public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
               .....
               .....
            }
        });

     }

}



Как сделать так, чтобы добавив слушателя для экземпляра класса PM7LTypes,
этот слушатель "слушал" только события изменения значений чекбоксов cb1 и cb2 ?

Т.е. хотелось бы видеть это так:

Код: java
1.
2.
3.
4.
5.
6.
7.
PM7LTypes myPM = new PM7LTypes();
myPM.addChangeListener(new ChangeListener(){
     @Override
      public void Change(Property.ChangeEvent changeEvent) {
         //Код срабатываемый после изменения cb1 и cb2     
       }
});
...
Рейтинг: 0 / 0
10.08.2016, 07:19
    #39289373
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
сделайте один метод для обоих чекбоксов в
.addValueChangeListener(...
с условием внутри метода, какое значение проставлено в cb1 и cb2.
...
Рейтинг: 0 / 0
10.08.2016, 07:24
    #39289374
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
В том смысле, что все-таки слушатели ставятся на каждый чекбокс, а не на класс в целом :)
Обычно же они к компонентам привязываются, а не к классу...
А класс-то что, у него событие основное - инициализация/создание экземпляра, в этот момент он и смотрит на состояния компонентов в нем, но эти состояния и так известны и проставляются при создании внутри класса.
или я не прав? :)
...
Рейтинг: 0 / 0
10.08.2016, 07:40
    #39289377
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Да правильно, один метод для двух чекбоксов то я создал,
но мне надо ловить их состояние по отдельности же...

думаю..
...
Рейтинг: 0 / 0
10.08.2016, 08:52
    #39289397
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
MAULER,

Если это JavaFX то что-то вы делаете категорически не так. Используйте биндинг вместо слушателей.
...
Рейтинг: 0 / 0
10.08.2016, 09:07
    #39289415
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Nixic,
По ООП можно и к классу. Тогда он сам становится источником событий. Инкапсулировав 2 чекбокса.
...
Рейтинг: 0 / 0
10.08.2016, 09:27
    #39289423
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Blazkowicz,
Это не JavaFX.

Это Vaadin.
Но я кажется решил вопрос.
Скорее всего тру-программеры меня загнобят, но работает.

Внутри класса реализовал метод-слушатель:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        public void addValueChangeListener(Property.ValueChangeListener listener){
        cb1.addValueChangeListener(listener);
        cb2.addValueChangeListener(listener);
        cb3.addValueChangeListener(listener);
        cb4.addValueChangeListener(listener);
        cb5.addValueChangeListener(listener);
        cb6.addValueChangeListener(listener);
        cb7.addValueChangeListener(listener);
    }



и внутрь затолкал слушатели всех чекбоксов.
А реализация listener происходит из основного приложения.
...
Рейтинг: 0 / 0
10.08.2016, 09:30
    #39289426
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
MAULERДа правильно, один метод для двух чекбоксов то я создал,
но мне надо ловить их состояние по отдельности же...

думаю..
Внутри переменной Property.ValueChangeEvent valueChangeEvent должно быть что-то что поможет определить нужный чекбокс.
...
Рейтинг: 0 / 0
10.08.2016, 09:31
    #39289429
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
MAULERВнутри класса реализовал метод-слушатель:

А что циклы запрещают на работе использовать?
...
Рейтинг: 0 / 0
10.08.2016, 09:32
    #39289431
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Blazkowicz,

Вы про цикл на 7 итераций? ))
...
Рейтинг: 0 / 0
10.08.2016, 09:56
    #39289441
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
MAULER,
В других ЯП ещё есть автоматическая отписка от компонента при уничтожении.
Тут, в конкретном примере не подскажу - надо или нет.
...
Рейтинг: 0 / 0
10.08.2016, 10:02
    #39289447
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
MAULERВы про цикл на 7 итераций? ))
Нет. Про то что у вас 7 условий и итераций будет в нескольких разных местах, каждое из которых нужно переписывать при изменении чекбоксов.
...
Рейтинг: 0 / 0
10.08.2016, 10:07
    #39289453
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Blazkowicz,

Да там просто набор "галочек" который анализируется в одном месте. Проверок действительно семь, но они не повторяются.
...
Рейтинг: 0 / 0
10.08.2016, 10:09
    #39289456
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить слушателя в собственный класс?
Petro123MAULER,
В других ЯП ещё есть автоматическая отписка от компонента при уничтожении.
Тут, в конкретном примере не подскажу - надо или нет.
Зависит от того переиспользуется Panel или пересоздаётся.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как добавить слушателя в собственный класс? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]