我用FXML和Scene Builder制作了一些自定义组件,效果很好。例如,我有一个组件(SliderVariable),其中我有一个Label,一个Slider,一个TextField和一个以前制作的InfoIcon组件(见下图)。 InfoIcon作为.jar文件导入。
无论我在哪里使用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);
}
}
非常感谢。