Привязка переменной к метке без обновления метки (не дубликат) [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Привязка переменной к метке без обновления метки (не дубликат) [дубликат]

Сообщение Anonymous »

У меня где-то возникло недопонимание, потому что у меня это работало, но когда я переместил эту функциональность в свой основной класс, метка перестала обновляться. Ранее я спрашивал подробнее о том, как вообще работает привязка. Теперь я не понимаю, почему это работало раньше и не работает сейчас.
Main.java

Код: Выделить всё

package application;

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;

public class Main extends Application {

public final Counter counter                 = new Counter();
public final SimpleStringProperty labelText  = new SimpleStringProperty();
public Label countLabel = new Label("default text");

public void initialize() {

labelText.addListener((observable, oldValue, newValue) -> {
System.out.println("Changed: " + oldValue + " -> " + newValue);
});
countLabel.textProperty().set("test");
counter.getProperty().addListener((observable, oldValue, newValue) ->  {
labelText.set("Click! " + newValue + " total clicks!");
});
countLabel.textProperty().bind(labelText);
}

@Override
public void start(Stage primaryStage) {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("views/Main.fxml"));
StackPane root = loader.load();
root.getChildren().add(countLabel);
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();

} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);
}
}

Счетчик увеличивается, как и ожидалось, текст, который должен быть в метке, обновляется, как и ожидалось, однако сама метка не обновляется. В консоли ошибок нет, т.е. Java думает, что все работает как задумано. Что здесь происходит?

Обновление примерно через 12 часов:
Итак, несмотря на то, что этот вопрос закрыто, я воспользовался советами всех и везде, где только мог найти, сократил свой код до настолько простого и пустого, насколько я мог себе представить, и решил обновить это на случай, если кто-нибудь сможет точно указать, где я Я делаю что-то не так.
Я перенес все из основного класса в отдельный класс MainUI, хотя у меня такое ощущение, что я все еще делаю что-то не так.
Класс приложения

Код: Выделить всё

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;

public class Main extends Application {

@Override
public void start(Stage primaryStage) {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("views/Main.fxml"));
StackPane root = loader.load();
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();

} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);
}
}
Main.fxml MainUI.java

Код: Выделить всё

package application;

import javafx.beans.property.StringProperty;
import javafx.fxml.FXML;
import javafx.beans.property.SimpleStringProperty;
import javafx.scene.control.Label;

public class MainUI {

protected final Counter counter  = new Counter();
public StringProperty labelText  = new SimpleStringProperty();

@FXML
public Label countLabel;

public void initialize() {
countLabel = new Label();
labelText.set("Start clicking");
counter.getProperty().addListener((observable, oldValue, newValue) ->  {
labelText.set("Click! " + newValue + " total clicks!");
System.out.println(labelText.get());
});
}
}

MainUI.fxml Click.java

Код: Выделить всё

package application;

public class Click extends MainUI {

public void test() {
System.out.println("Testing, 1, 2, 3...");
}

public void click() {
counter.addToCounter(1)
}

}

Click.fxml Counter.java

Код: Выделить всё

package application;

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

public class Counter {
private final IntegerProperty count = new SimpleIntegerProperty(0);

public IntegerProperty getProperty() {
return count;
}

public void addToCounter(int addNum) {
count.set(count.getValue() + addNum);
}

public void setCounter(int setNum) {
this.count.set(setNum);
}
}
Опять же, счетчик и логика работают нормально, но в MainUI.fxml я не могу понять, как ссылаться на переменную labelText или привязывать ее к метке

Код: Выделить всё

    text="${controller.labelText.value}"
В этом проблема?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -duplicate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Привязка переменной к метке без обновления метки (не дубликат) [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Применить различное форматирование только к одной метке столбца в метке столбца matplotlib
    Anonymous » » в форуме Python
    0 Ответы
    69 Просмотры
    Последнее сообщение Anonymous
  • JavaFX: привязка текста метки к наблюдаемой переменной
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Привязка текста метки к наблюдаемой переменной
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Привязка текста метки к наблюдаемой переменной
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»