需要扩展类来侦听抽象类javaFX属性中的更改



我想构建一个抽象类,并且我想指定扩展类要侦听/处理的某些JavaFX属性。例如,我有:

-具有layoutXProperty的抽象类CircleX。。。

然后我做:类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);
    }
}

在这里,您可以在超类中添加一个监听器,该监听器调用一个抽象方法。然后,任何子类都必须实现抽象方法,并且在属性更改时调用该方法。

相关内容

  • 没有找到相关文章

最新更新