[英]Updating JavaFX Label doesn't work with DataBinding
我試圖在選項卡中寫“自己的”日志,但在使用天真的解決方案更新標簽時遇到了問題。
因此,在Google搜索之后,我在這里簽出了該解決方案: 在JavaFx標簽中顯示更改的值
我不知道我是否做對了一切,但不幸的是,這種解決方案對我不起作用。
final static Label logLabel = new Label();
final static SimpleStringProperty logString = new SimpleStringProperty("test");
...
...
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
tabPane.getTabs().add(createSettingsTab());
tabPane.getTabs().add(createParticipantTab());
tabPane.getTabs().add(createSpectatorTab());
tabPane.getTabs().add(createOverviewTab());
tabPane.getTabs().add(createTournamentTab());
tabPane.getTabs().add(createLogTab());
tabPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);
Scene scene = new Scene(tabPane, 1200, 800);
primaryStage.setScene(scene);
primaryStage.setResizable(true);
primaryStage.show();
}
private Tab createLogTab() {
// TODO Auto-generated method stub
logLabel.textProperty().bind(logString);
Tab tab = new Tab("Log");
tab.setContent(logLabel);
return tab;
}
我得到了以下行來初始化Label和設置新文本,我這樣做:
logString.set(logString.get() + "foo");
日志標簽保持空白...
我將不勝感激! 謝謝!
編輯//這是我能想到的唯一有用的mcve。 正如我所說的,用於創建其他選項卡的其他創建方法未利用標簽或SimpleStringProperty
這是與標簽有關的無效按鈕。
buttonLoadConfig.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("test");
logString.set(logString.get() + "\ttest");
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Choose Config");
File config = fileChooser.showOpenDialog(new Stage());
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.