从FXML和Scene Builder访问变量

时间:2018-04-21 14:20:21

标签: javafx fxml scenebuilder

我用FXML和Scene Builder制作了一些自定义组件,效果很好。例如,我有一个组件(SliderVariable),其中我有一个Label,一个Slider,一个TextField和一个以前制作的InfoIcon组件(见下图)。 InfoIcon作为.jar文件导入。

enter image description here

无论我在哪里使用SliderVariable,我都可以在我的java代码中更改SliderVariable的标题,默认文本等。我想知道如何从Scene Builder或FXML访问这些变量。我想要的基本上是每当我将SliderVariable导入到一个新项目时,我希望能够在Scene Builder中设置它的标题,默认文本等。我一直在寻找年龄,甚至可能吗?

举例说明,这有效:

    SliderVariable slider = new SliderVariable();
    Scene scene = new Scene(slider);
    slider.setTip("Tippety tip");

这不是:

  <InfoIcon fx:id="info" tipText="Tippety tip"/>

这是为什么?这里还有导入的InfoIcon组件的控制器:

public class InfoIcon extends StackPane {

    @FXML private Tooltip tip;

    public InfoIcon() {
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(
                "InfoIcon.fxml"));
        fxmlLoader.setRoot(this);
        fxmlLoader.setController(this);

        try {
            fxmlLoader.load();
        } catch (IOException exception) {
            throw new RuntimeException(exception);
        }
    }

    public void setTipText(String value) {
        tip.textProperty().set(value);
    }
}

非常感谢。

0 个答案:

没有答案