JavaFX自定义节点-强制FX线程

JavaFX自定义节点-强制FX线程,java,javafx,Java,Javafx,我正在制作一些自定义节点,如下所示: public final class Indicator extends HBox { public Indicator() { Label label = new Label(); indicatorText = label.textProperty(); getChildren().add(label); } private final StringProperty indica

我正在制作一些自定义节点,如下所示:

public final class Indicator extends HBox {

    public Indicator() {
        Label label = new Label();
        indicatorText = label.textProperty();
        getChildren().add(label);
    }

    private final StringProperty indicatorText;

    public final String getIndicatorText() {
        return indicatorText.get();
    }

    public final void setIndicatorText(String val) {
        indicatorText.set(val);
    }

    public StringProperty indicatorText() {
        return indicatorText;
    }

}
问题是:

有没有办法在Fx应用程序线程上强制使用节点?我应该在节点的每个方法/构造函数中检查Fx线程吗?或者这不是必要的? 我在问,因为在某些情况下,像这样->
当属性在Fx主线程之外使用时,JavaFX不会引发异常,我真的希望避免它。

是的,这就是您要做的:检查当前运行的线程,如果不是Fx线程,则引发异常

然而,这可能限制太多:节点上的许多代码可以在其他线程中运行而不会出现问题

事实上,如果节点未附加到场景图,则节点中的所有代码都可以在其他线程中运行


更好的解决方案是为运行代码的每个线程实现一个全面的解决方案,并在开发/测试阶段处理并发异常。

platform.isFXApplicationThread。。但你为什么想要它,真的?只要节点不是活动线程的一部分,就可以在fx线程之外配置节点的属性scenegraph@kleopatra是否有任何方法可以确定节点是否是除getChildren().contains()之外的场景的一部分?还是我应该放弃这个想法?