背景:
最近在使用JavaFx开发一款客户端软件,当更改数据时,页面的数据没有得到实时刷新问题。
解决方式:
方式一:
//downloadPath属性,path改变的值
Platform.runLater(()->downloadPath.setText(path));
方式二:
//定义
private PropertyChangeSupport changes = new PropertyChangeSupport(this);
//定义方法
public void addPropertyChangeListener(PropertyChangeListener listener) {
changes.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
changes.removePropertyChangeListener(listener);
}
//Set方法时
public void setDeviceName(String deviceName){
String oldDeviceName = deviceInfo.getDeviceName();
this.deviceInfo.setDeviceName(deviceName);
changes.firePropertyChange("deviceName",oldDeviceName,deviceName);
}
configPageFXMLDO.addPropertyChangeListener(evt -> Platform.runLater(() -> deviceName.setText((String) evt.getNewValue())));
方式三:
//默认下载路径
private String downloadPath = "";
private final StringProperty downloadPathProperty = new SimpleStringProperty();
public StringProperty downloadPathProperty() {
return downloadPathProperty;
}
public void setDownloadPath(String downloadPath) {
this.downloadPath = downloadPath;
//设置值
downloadPathProperty.set(downloadPath);
}
downloadPath.textProperty().bind(Bindings.createStringBinding(
() -> configPageFXMLDO.getDownloadPath(), configPageFXMLDO.downloadPathProperty()));