powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с событиями
7 сообщений из 7, страница 1 из 1
Работа с событиями
    #38815841
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня в программе есть переменная:
Код: java
1.
  public static String logger = "";


Можно ли в Java привязать событие к изменению этой переменной? То есть когда эта переменная изменялась, то срабатывал какой то метод.
Заранее большое спасибо!
...
Рейтинг: 0 / 0
Работа с событиями
    #38815845
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
private String logger = "";

public void setLogger(String s){
     String old = this.logger;
     this.logger = s;
     firePropertyChanged("logger", old, s);
}
...
Рейтинг: 0 / 0
Работа с событиями
    #38815856
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz
Код: java
1.
2.
3.
4.
5.
6.
7.
private String logger = "";

public void setLogger(String s){
     String old = this.logger;
     this.logger = s;
     firePropertyChanged("logger", old, s);
}



У меня NetBeans ругается на
Код: java
1.
 firePropertyChanged("logger", old, s);


Предлагает создать такой метод в классе
...
Рейтинг: 0 / 0
Работа с событиями
    #38815859
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аааа, там опечатка в слове
...
Рейтинг: 0 / 0
Работа с событиями
    #38815860
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
docs.oracle.com/javafx/2/api/javafx/beans/property/package-summary.html
docs.oracle.com/javafx/2/api/javafx/beans/property/StringProperty.html

docs.oracle.com/javase/8/javafx/api/javafx/beans/property/package-summary.html
docs.oracle.com/javase/8/javafx/api/javafx/beans/property/StringProperty.html
...
Рейтинг: 0 / 0
Работа с событиями
    #38815865
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понимаю как работает ваш код... как вывести через System.out.println() что изменилась переменная?
...
Рейтинг: 0 / 0
Работа с событиями
    #38815920
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaneS Ri_laxкак вывести через System.out.println() что изменилась переменная?
Читай наздоровье)
SomeFxBean.java
Код: 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.
27.
28.
package testbean;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class SomeFxBean {

    //<editor-fold defaultstate="collapsed" desc="titleProperty">
    private final StringProperty title = new SimpleStringProperty();

    public String getTitle() {
        return title.get();
    }

    public void setTitle(String value) {
        title.set(value);
    }

    public StringProperty titleProperty() {
        return title;
    }
    //</editor-fold>

    public final IntegerProperty anotherProperty = new SimpleIntegerProperty();

}

TestBean.java
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
package testbean;

import java.util.function.Function;
import javafx.util.StringConverter;

import static java.lang.System.out;

public class TestBean {

    public static void main(String[] args) {
        SomeFxBean bean = new SomeFxBean();

        bean.titleProperty().bindBidirectional(bean.anotherProperty, stringConverter(
                text -> text.length(),
                number -> {
                    int size = number.intValue();
                    StringBuilder sb = new StringBuilder(size);
                    for (int i = 0; i < size; ++i) {
                        sb.append('*');
                    }
                    return sb.toString();
                }
        ));

        bean.titleProperty().addListener((all, was, become)
                -> out.println(
                        "titleProperty:" + "\n" +
                        "  old value: " + was + "\n" +
                        "  new value: " + become + "\n"
                )
        );

        bean.anotherProperty.addListener((all, was, become)
                -> out.println(
                        "----------" + "\n" +
                        "anotherProperty:" + "\n" +
                        "  old value: " + was + "\n" +
                        "  new value: " + become + "\n" +
                        "----------" + "\n"
                )
        );

        bean.setTitle("1");
        bean.setTitle("2");
        bean.setTitle("3");
        bean.setTitle("100");

        bean.anotherProperty.set(30);
        bean.titleProperty().set("Так тоже можно");

    }

    public static <T> StringConverter<T> stringConverter(
            Function<String, T> from,
            Function<T, String> to
    ) {
        return new StringConverter<T>() {
            @Override public String toString(T object) {
                return to.apply(object);
            }

            @Override public T fromString(String string) {
                return from.apply(string);
            }
        };
    }
}

...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с событиями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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