我有一个包含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());
}
}
如您所见,我正在使用属性动态更改labelProgKwotyZetonow
和textProgKwota
中显示的内容。
当我不使用第二个窗口时txt
和labelProgKwotyZetonow
工作正常,但是当我初始化第二个窗口时,我总是在TextField中得到0,即使我改变了它也没有改变{{ 1}}。
这对我来说很奇怪,因为当我在某些地方({1}}进行宣传(System.out.println)的价值时,我得到了:{/ p>
在第二个控制器的函数labelProgKwotyZetonow
中 - 0。
在第一个控制器的函数promocja.getProgKwotyZetonow()
中 - 来自initialize
/ zmienUstawienia
的值。
在第二个控制器的函数txt
中 - 来自labelProgKwotyZetonow
的值。