我正在尝试使用自定义控件构建UI。但是很难让场景构建器与自定义部件一起正常工作。
我的自定义控件:
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="800.0" type="javafx.scene.layout.AnchorPane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
...other code
</children>
</fx:root>
Room.fxml,使用自定义类:
...other code
<?import ag.ctrl.*?>
<?scenebuilder-classpath-element ../../target/classes/ag/ctrl?>
...other code
<BorderPane prefHeight="200.0" prefWidth="200.0"
BorderPane.alignment="CENTER">
<top>
<TeamArea />
</top>
</BorderPane>
自定义ui的控制器:
package ag.ctrl;
...
public class TeamArea extends AnchorPane {
...
public TeamArea() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(
"/ui/TeamArea.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
try {
fxmlLoader.load();
} catch (IOException exception) {
throw new RuntimeException(exception);
}
}
...
}
以及所有这些文件的路径: TeamArea.fxml:/resource/ui/TeamArea.fxml Room.fxml:/resource/ui/Room.fxml
TeamArea.class:/target/classes/ag/ctrl/TeamArea.class
我之前尝试了许多不同的方法。最后找到了场景构建器的类错误或其他错误。 目前,我在场景构建器中的TeamArea节点上遇到了未解决的类错误。
某些愚蠢的错误必须在某处......
有人可以帮忙吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您的类路径必须是:
<?scenebuilder-classpath-element ../../target/classes?>
然而,我面临着同样的问题而且也没有这样做。如果你有工作,请给我发表评论