我正在编写一个用于下棋的小型GUI程序。我偶然发现了一个问题,即如果程序不返回 InvocationTargetExcepetion ,就无法向 chessTable 添加任何元素。这是我的代码:
public void start(Stage primaryStage) throws Exception {
GridPane chessTable = new GridPane();
chessTable.getStylesheets().add(getClass().getResource("styles.css").toString());
Box chessBox = new Box(112 , 94, 0);
chessBox.getStyleClass().add("chess-box");
for (int h = 0; h < 8; h++) {
for (int w = 0; w < 8; w++) {
GridPane.setConstraints(chessBox, w, h);
chessTable.getChildren().add(chessBox);
}
}
primaryStage.setTitle("ChessGame");
primaryStage.setFullScreen(true);
Scene scene = new Scene(chessTable, 900, 750);
primaryStage.setScene(scene);
primaryStage.show();
}
答案 0 :(得分:0)
尝试以下方法(例如,我不知道您的“ styles.css”在哪里...):
public void start(Stage primaryStage) throws Exception {
GridPane chessTable = new GridPane();
chessTable.getStylesheets().add(getClass().getResource("/styles.css").toString());
for (int h = 0; h < 8; h++) {
for (int w = 0; w < 8; w++) {
Box chessBox = new Box(112, 94, 0);
chessBox.getStyleClass().add("chess-box");
GridPane.setConstraints(chessBox, w, h);
chessTable.getChildren().add(chessBox);
}
}
请注意,它会为代码对面的每个单元格创建一个新的Box,尝试将同一框同时放置在不同的单元格中(只能添加一次)。