0
그리드 패널 레이아웃을 사용하여 별도의 장면을 만들고 싶습니다. 기본적으로 모든 코드를 복사하고 새로운 장면을 만들려고했으나 두 번째 장면에 넣은 모든 것은 격자에 맞지 않습니다. 나는 상당히 코딩, 그리고 이것은 내 다섯 번째 프로젝트입니다. (나쁜 코드 때문에 미안)2 개의 다른 장면에서 하나의 클래스에 2 개의 GridPane 가져 오기
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Main extends Application {
Stage window;
Scene s1, s2;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setTitle("Test");
GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(10);
grid.setHgap(10);
Button b1 = new Button("Scene 2");
b1.setOnAction(e -> window.setScene(s2));
GridPane.setConstraints(b1, 2, 0);
Button b2 = new Button("Button 2");
GridPane.setConstraints(b2, 5, 0);
grid.getChildren().addAll(b1, b2);
Scene s1 = new Scene(grid, 500, 500);
GridPane grid2 = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(10);
grid.setHgap(10);
Button b3 = new Button("Scene 1");
b3.setOnAction(e -> window.setScene(s1));
GridPane.setConstraints(b3, 0, 0);
Button b4 = new Button("Button 2");
GridPane.setConstraints(b4, 6, 0);
grid2.getChildren().addAll(b3, b4);
s2 = new Scene(grid2, 500, 500);
window.setScene(s1);
window.show();
}
}
당신은 단지 명백한 복사 및 붙여 넣기 오류가 발생했을 수 있어야합니다. –
'그리드에 맞지 않는다'는 것은 무엇을 의미합니까? 귀하의 코드를 실행했는데 장면 2에서 적절한 간격이 표시되지 않는다는 점을 제외하고는 정상적으로 작동합니다. 왜냐하면 James가 말했듯이, grid2에 대해 vgap과 hgap을 설정하지 않았기 때문입니다. –
grids.setPadding 등이 grid2라는 레이블이 있어야한다는 것을 모른 채 너무 많이 @ James_D에 감사드립니다. 방금 범용이라고 생각 했어. – CraftMaster100