屬性綁定是javafx新引入的概念,可以將一個目標對象與一個源對象綁定。
1.綁定方法很簡單,只有一個簡單函數
target.bind(source);
//target相當於因變量,source相當於自變量
2.javafx的許多對象都可以作為自變量或者因變量。
3.綁定類型屬性可以當作一個新數據類型。不過它是抽象類不能new出新對象。創新對象需要用下面表格第三列.
類型 | 綁定屬性類型 (抽象類) | 創建子類的綁定屬性類型 |
---|---|---|
int | IntegerProperty | SimpleIntegerProperty |
long | LongProperty | SimpleLongProperty |
float | FloatProperty | SimpleFloatProperty |
double | DoubleProperty | SimpleDoubleProperty |
boolean | BooleanProperty | SimpleBooleanProperty |
String | StringProperty | SimpleStringProperty |
List | ListProperty | SimpleListProperty |
Set | SetProperty | SimpleSetProperty |
Map | MapProperty | SimpleMapProperty |
4.新屬性綁定距離代碼:
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
public class train(){
public static void main(String[] arge){
Double a = new SimpleDoubleProperty(6);
Double b = new SimpleDoubleProperty(9);
a.bind(b);
System.out.println("a的值為:"+a+",b的值為:"+b);
b.setValue(10);
System.out.println("a的值為:"+a+",b的值為:"+b);
}
}
//輸出結果:a的值為:9,b的值為9
//a的值為10,b的值為10
5.屬性綁定代碼展示:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
public class 屬性綁定 extends Application {
@Override
public void start(Stage qwe) {
Pane pane = new Pane();
Circle c = new Circle();
c.centerXProperty().bind(pane.widthProperty().divide(2));
c.centerYProperty().bind(pane.heightProperty().divide(2));
c.setRadius(75);
c.setFill(Color.BLUE);
pane.getChildren().add(c);
Scene scen = new Scene(pane,200,200);
qwe.setTitle("圓");
qwe.setScene(scen);
qwe.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
>運行結果:產生一個圓,不論界面如何變化,圓始終位於窗口中間。
6.還可以雙向綁定:bindDidirectional().