JavaFX属性绑定

属性绑定是javafx新引入的概念,可以将一个目标对象与一个源对象绑定。

1.绑定方法很简单,只有一个简单函数

target.bind(source);
//target相当于因变量,source相当于自变量

2.javafx的许多对象都可以作为自变量或者因变量。

3.绑定类型属性可以当作一个新数据类型。不过它是抽象类不能new出新对象。创新对象需要用下面表格第三列.

类型绑定属性类型 (抽象类)创建子类的绑定属性类型
intIntegerPropertySimpleIntegerProperty
longLongPropertySimpleLongProperty
floatFloatPropertySimpleFloatProperty
doubleDoublePropertySimpleDoubleProperty
booleanBooleanPropertySimpleBooleanProperty
StringStringPropertySimpleStringProperty
ListListPropertySimpleListProperty
SetSetPropertySimpleSetProperty
MapMapPropertySimpleMapProperty

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().

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaFX 属性是一种特殊的字段,可以在属性值发生变化时自动更新视图。JavaFX 属性有以下几个特点: 1. 可观察性:JavaFX 属性是可观察的,可以注册监听器来监听属性值的变化。 2. 绑定性:JavaFX 属性可以绑定到其他属性或表达式上,当被绑定属性或表达式的值发生变化时,绑定属性的值也会随之变化。 3. 可写性:JavaFX 属性可以是可写的或只读的,可写属性的值可以通过 set 方法来修改,只读属性的值只能在创建时指定,之后不可修改。 4. 类型安全:JavaFX 属性具有类型安全性,因为属性的类型是在编译时确定的。 以下是一个简单的 JavaFX 属性示例: ``` import javafx.beans.property.*; public class Person { private StringProperty name = new SimpleStringProperty(); private IntegerProperty age = new SimpleIntegerProperty(); public String getName() { return name.get(); } public void setName(String name) { this.name.set(name); } public StringProperty nameProperty() { return name; } public int getAge() { return age.get(); } public void setAge(int age) { this.age.set(age); } public IntegerProperty ageProperty() { return age; } } ``` 在上面的示例中,Person 类具有两个 JavaFX 属性:name 和 age。name 属性是一个字符串属性,age 属性是一个整数属性。这些属性都具有 get 和 set 方法,以及对应的属性对象(nameProperty 和 ageProperty)。可以使用属性对象来注册监听器、绑定属性和获取属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值