Javafx 边框窗格问题

Javafx 边框窗格问题,javafx,border,gridpane,pane,hbox,Javafx,Border,Gridpane,Pane,Hbox,我想制作一个边框窗格,顶部和底部有两个HBox,中间有一个GridPane。。。我写了我需要的,附加了标签,但我不能运行代码 应用程序启动方法中的异常 java.lang.reflect.InvocationTargetException是我得到的一个错误。。。代码如下,欢迎任何帮助:)谢谢 public类labelBorder扩展应用程序{ @凌驾 公共无效开始(阶段primaryStage){ BorderPane bp=新的BorderPane(); bp.setPrefSize(4004

我想制作一个边框窗格,顶部和底部有两个HBox,中间有一个GridPane。。。我写了我需要的,附加了标签,但我不能运行代码 应用程序启动方法中的异常 java.lang.reflect.InvocationTargetException是我得到的一个错误。。。代码如下,欢迎任何帮助:)谢谢

public类labelBorder扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
BorderPane bp=新的BorderPane();
bp.setPrefSize(400400);
HBox hb1=新的HBox();
标签lb1=新标签(“”);
lb1.setPrefWidth(200);
lb1.setboorder(新边框(新边框笔划(颜色.蓝绿色,边框笔划样式.实心,空,新边框宽度(5)));
标签lb2=新标签(“”);
lb2.setPrefWidth(200);
lb2.setboorder(新边框(新边框笔划(颜色.蓝紫色,边框笔划样式.实心,空,新边框宽度(5)));
HBox hb2=新的HBox();
URI foto=path.get(“D:\\Barca.jpg”).toUri();
标签lb3=新标签();
lb3.setGraphic(新的ImageView(foto.toString());
lb3.autosize();
GridPane gp=新的GridPane();
标签lb4=新标签(“”);
标签lb5=新标签(“”);
标签lb6=新标签(“”);
标签lb7=新标签(“”);
加总成(lb4,0,0);
加总成(lb5,0,1);
加总成(lb6,1,0);
总成增加(lb7,1,1);
gp.getChildren().addAll(lb4、lb5、lb6、lb7);
hb1.getChildren().addAll(lb1,lb2);
hb2.getChildren().addAll(lb3);
bp.setTop(hb1);
设置中心(gp);
bp.setBottom(hb2);
getChildren().addAll(hb1,hb2,gp);
场景=新场景(bp);
初级阶段。场景(场景);
primaryStage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}
不应将重复的子控件添加到父布局(窗格)中。你的代码一定在抛出

java.lang.IllegalArgumentException:子项:添加了重复的子项

要克服您的问题,请删除这些行

gp.getChildren().addAll(lb4,lb5,lb6,lb7);
以及

因为这些控件已经添加到相应的布局中

注意:在BorderPane上使用
pane.getChildren().addAll(…)
添加子项与此无关,在呈现添加的控件时将被忽略


只是看到了,然后删除了这行代码…但代码仍然无法执行。。。我确保构建路径正确,模块构建路径正确。其他代码运行得很好,但这一个不会。。。。我现在在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)的java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)的应用程序启动方法java.lang.reflect.InvocationTargetException中遇到异常错误在java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)上,我已经对它进行了测试,它正在工作-尝试重新构建它并重新运行你的应用程序。@Draven你得到的
InvocationTargetException
的信息实际上是无用的。在
start
中发生的每个exeption都被包装在这种异常中。stacktrace中真正有趣的部分是由引起的从最后一个
开始的部分;这还应该提到您自己代码中的行…@fabian,感谢您提供的信息,我可以在javafx.graphics/com.sun.javafx.Application.launchempl.launcheapplication1(launchempl.java:900)的应用程序启动方法中发布原因:java.lang.RuntimeException:Exceptionjavafx.graphics/com.sun.javafx.application.launchempl.lambda$launchApplication$2(launchempl.java:195),java.base/java.lang.Thread.run(Thread.java:830)。。别忘了添加完整的堆栈跟踪
bp.getChildren().addAll(hb1,hb2,gp);