具有2个或更多fxml文件的JavaFX应用程序 - 属性

时间:2017-06-19 16:24:08

标签: java javafx

我有一个包含3个fxml文件的应用。 第一个是应用程序的主窗口,我在这里做的大部分工作,但另外两个fxml文件允许我更改一些设置并向应用程序添加更多记录。 我做了2个小的fxml文件扩展主文件。 基本上是:

public class FXMLDocumentController implements Initializable {
@FXML
private TextField txt;
@FXML
private Stage stage;
Symulacja symulacja = new Symulacja();
Promocja promocja = new Promocja();
@Override
public void initialize(URL url, ResourceBundle rb) {
    txt.textProperty().bindBidirectional(promocja.getProgKwotyZetonow(), new NumberStringConverter());
    labelProgKwotyZetonow.textProperty().bind(promocja.getProgKwotyZetonow().asString());
}
@FXML
public void zmienUstawienia() {
    symulacja.zmienOkno("FXMLUstawienia.fxml", "Ustawienia");
}
@FXML
public void dodajKlientow() {
    symulacja.zmienOkno("FXMLDodajKlienta.fxml", "Dodawanie");
}
}

这是主要的fxml控制器

public class FXMLUstawieniaController extends FXMLDocumentController{

@FXML
private TextField textProgKwota;

@FXML
private Button btnZatwierdzUstawienia;

@FXML
private TextField textProgIlosc;

@FXML
public void zatwierdzUstawienia() {
    promocja.setProgIlosciZetonow(Integer.parseInt(textProgIlosc.getText()));
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    textProgKwota.textProperty().bindBidirectional(promocja.getProgKwotyZetonow(), new NumberStringConverter());
}
}

如您所见,我正在使用属性动态更改labelProgKwotyZetonowtextProgKwota中显示的内容。

当我不使用第二个窗口时txtlabelProgKwotyZetonow工作正常,但是当我初始化第二个窗口时,我总是在TextField中得到0,即使我改变了它也没有改变{{ 1}}。

这对我来说很奇怪,因为当我在某些地方({1}}进行宣传(System.out.println)的价值时,我得到了:{/ p>

在第二个控制器的函数labelProgKwotyZetonow中 - 0。

在第一个控制器的函数promocja.getProgKwotyZetonow()中 - 来自initialize / zmienUstawienia的值。

在第二个控制器的函数txt中 - 来自labelProgKwotyZetonow的值。

0 个答案:

没有答案