I';我试图在javafx上的游戏中添加一个开始屏幕
这有点像源代码。经过多次尝试,我终于做到了这一点,但我仍然犯了很多错误 java.lang.reflect.InvocationTargetException 原因:java.lang.RuntimeException:应用程序启动方法中的异常 原因:java.lang.IllegalArgumentException:子项:添加的重复子项:parent=Grid hgap=0.0,vgap=0.0,alignment=TOP\u LEFT 我甚至不确定我在这里试图实现的目标是朝着正确的方向,还是完全错误的方向 源代码在没有任何附加屏幕的情况下运行游戏。我想在游戏开始前添加一个简单的开始屏幕。一个播放按钮和一个下拉菜单。该按钮会将您发送到游戏,并在下拉菜单中选择一种颜色,然后将其保存以供游戏中使用I';我试图在javafx上的游戏中添加一个开始屏幕,java,javafx,Java,Javafx,这有点像源代码。经过多次尝试,我终于做到了这一点,但我仍然犯了很多错误 java.lang.reflect.InvocationTargetException 原因:java.lang.RuntimeException:应用程序启动方法中的异常 原因:java.lang.IllegalArgumentException:子项:添加的重复子项:parent=Grid hgap=0.0,vgap=0.0,alignment=TOP\u LEFT 我甚至不确定我在这里试图实现的目标是朝着正确的方向,还
@Override
public void start(Stage primaryStage) {
//MENU ITEMS HERE//
gameSceneGrid = new GridPane();
GridPane root = new GridPane();
root.add(MENU, 0, 0);
root.add(gameSceneGrid, 0, 1);
root.getChildren().addAll(gameSceneGrid);
gameScene = new Scene(root,600,600);
Button playButton = new Button("Play Game");
playButton.setOnAction(e -> primaryStage.setScene(gameScene));
startSceneGrid = new GridPane();
startSceneGrid.add(playButton,0,1);
GridPane root0= new GridPane();
root0.add(MENU,0,0);
root0.add(startSceneGrid,0,1);
root0.getChildren().addAll(startSceneGrid);
startScene = new Scene(root0,200,200);
primaryStage.setScene(startScene);
primaryStage.setTitle(StartMeUp.GAME_NAME);
primaryStage.show();
loadDefaultSaveFile(primaryStage);
}
void loadDefaultSaveFile(Stage primaryStage)
{
this.primaryStage = primaryStage;
System.out.println("Hi");
InputStream in = getClass().getClassLoader().getResourceAsStream("sample/SampleGame.skb");
System.out.println(in);
initializeGame(in);
System.out.println("Hi");
setEventFilter();
System.out.println("Hi");
}
这是游戏屏幕/场景的原始源代码
gameGrid = new GridPane();
GridPane root = new GridPane();
root.add(MENU, 0, 0);
root.add(gameGrid, 0, 1);
primaryStage.setTitle(StartMeUp.GAME_NAME);
primaryStage.setScene(new Scene(root));
primaryStage.show();
loadDefaultSaveFile(primaryStage);
发布完整的堆栈跟踪,并指出代码中的哪一行抛出异常。如上所述,您将
gamesceegrid
添加到root
两次,这几乎肯定是问题的原因。请..我删除了root.getChildren.adAll,它成功了。我怎么也没想到我离得这么近。非常感谢@James\u d堆栈跟踪的重要部分是由以下原因引起的:java.lang.IllegalArgumentException:Children:replicate Children added:parent=Grid hgap=0.0,vgap=0.0,alignment=TOP\u LEFT,它告诉您要同时多次向父节点添加节点。堆栈跟踪还将告诉代码的哪一行抛出了错误。如果您不确定如何读取堆栈跟踪,请检查。