需要扩展 classes 以监听抽象 class javaFX 属性的变化
Require extending classes to listen to changes in abstract class javaFX properties
我想构建一个抽象 class,我想通过扩展 classes 将某些 JavaFX 属性指定为 listened/handled。例如,我有:
-具有 layoutXProperty 的抽象 class CircleX...
然后我做:
class MyCircle 扩展了 CircleX
我想确保 MyCircle 实现了一个
layoutXProperty().addListener(new ChangeListener....)
我知道我可以创建需要重写的抽象方法。但是有没有办法具体说明这些方法应该操作、处理哪些变量?
尝试以下操作:
public abstract class CircleX {
private final DoubleProperty layoutX ;
public CircleX() {
layoutX = new SimpleDoubleProperty();
layoutX.addListener((obs, oldValue, newValue) ->
layoutXUpdated(oldValue, newValue));
}
public abstract void layoutXUpdated(Double oldLayoutX, Double newLayoutX) ;
public DoubleProperty layoutXProperty() {
return layoutX ;
}
public final double getLayoutX() {
return layoutXProperty().get();
}
public final void setLayoutX(double layoutX) {
layoutXProperty().set(layoutX);
}
}
在这里,您在调用抽象方法的超类中添加了一个侦听器。然后任何子类都必须实现抽象方法,并且当 属性 更改时调用该方法。
我想构建一个抽象 class,我想通过扩展 classes 将某些 JavaFX 属性指定为 listened/handled。例如,我有:
-具有 layoutXProperty 的抽象 class CircleX...
然后我做: class MyCircle 扩展了 CircleX
我想确保 MyCircle 实现了一个 layoutXProperty().addListener(new ChangeListener....)
我知道我可以创建需要重写的抽象方法。但是有没有办法具体说明这些方法应该操作、处理哪些变量?
尝试以下操作:
public abstract class CircleX {
private final DoubleProperty layoutX ;
public CircleX() {
layoutX = new SimpleDoubleProperty();
layoutX.addListener((obs, oldValue, newValue) ->
layoutXUpdated(oldValue, newValue));
}
public abstract void layoutXUpdated(Double oldLayoutX, Double newLayoutX) ;
public DoubleProperty layoutXProperty() {
return layoutX ;
}
public final double getLayoutX() {
return layoutXProperty().get();
}
public final void setLayoutX(double layoutX) {
layoutXProperty().set(layoutX);
}
}
在这里,您在调用抽象方法的超类中添加了一个侦听器。然后任何子类都必须实现抽象方法,并且当 属性 更改时调用该方法。