我想创建新的控件,因此我需要对documentation提及的FXML文件使用fx:root
。这是带有按钮的简约示例。
<fx:root type="javafx.scene.layout.VBox" xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml" minWidth="100" minHeight="20">
<Button text="${controller.content}" minWidth="100" minHeight="20"/>
</fx:root>
public class MyButton extends VBox {
public String getContent() {
return content.get();
}
private StringProperty content = new SimpleStringProperty("Hello here");
public MyButton() throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("MyButton.fxml"));
loader.setController(this);
loader.setRoot(this);
loader.load();
}
}
问题是,IntelliJ不知道将分配给FXML文件的对象的类型,因此尽管程序可以正常工作,但它向我显示了未解析的符号。
有没有办法在IntelliJ中修复它?当使用fx:include
(具有fx:controller
属性)时,这并不是停顿,但是据我所知,对于自定义控件,我应该使用第一种方法。