如何使用GridPane JavaFX使按钮跨越多列/行?
发布时间:2020-12-15 04:36:56 所属栏目:Java 来源:网络整理
导读:我是 JavaFX的新手,正在尝试使用GridPane进行简单的按钮设计. 我无法弄清楚如何使按钮跨越多个列/行,而不会将其他按钮推开.我一直在使用HBox和VBox将其他按钮组合在一起.我在按钮上尝试过setRowSpan,但这似乎不起作用. How it is looking How i want it to l
我是
JavaFX的新手,正在尝试使用GridPane进行简单的按钮设计.
我无法弄清楚如何使按钮跨越多个列/行,而不会将其他按钮推开.我一直在使用HBox和VBox将其他按钮组合在一起.我在按钮上尝试过setRowSpan,但这似乎不起作用. How it is looking How i want it to look 这是我的代码: import javafx.stage.*; import javafx.application.*; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.layout.*; public class SimpleGUI extends Application { public void start(Stage primaryStage) throws Exception { GridPane root = new GridPane(); Scene scene = new Scene(root,200,200); //Buttons Button b1 = new Button("KNAPP 1"); Button b2 = new Button("KNAPP 2"); Button b3 = new Button("KNAPP 3"); Button b4 = new Button("KNAPP 4"); Button b5 = new Button("KNAPP 5"); Button b6 = new Button("KNAPP 6"); //Horizontal Box HBox topButtons = new HBox(); topButtons.getChildren().add(b1); topButtons.getChildren().add(b2); topButtons.getChildren().add(b3); //Vertical Box VBox leftButtons = new VBox(); leftButtons.getChildren().add(b4); leftButtons.getChildren().add(b5); //Placement GridPane.setConstraints(topButtons,0); GridPane.setConstraints(leftButtons,1); GridPane.setConstraints(b6,1,1); //Length (3 Columns,2 Rows) GridPane.setColumnSpan(topButtons,3); GridPane.setRowSpan(leftButtons,2); //Add them to the stage root.getChildren().add(topButtons); root.getChildren().add(leftButtons); root.getChildren().add(b6); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args){ launch(args); } } 解决方法
由于您使用的是网格窗格,因此您不需要HBox和VBox:
import javafx.stage.*; import javafx.application.*; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.layout.*; public class SimpleGUI extends Application { public void start(Stage primaryStage) throws Exception { GridPane root = new GridPane(); Scene scene = new Scene(root); //Buttons Button b1 = new Button("KNAPP 1"); Button b2 = new Button("KNAPP 2"); Button b3 = new Button("KNAPP 3"); Button b4 = new Button("KNAPP 4"); Button b5 = new Button("KNAPP 5"); Button b6 = new Button("KNAPP 6"); root.add(b1,0); root.add(b2,0); root.add(b3,2,0); root.add(b4,1); root.add(b5,2); // node,columnIndex,rowIndex,columnSpan,rowSpan: root.add(b6,2); // allow button to grow: b6.setMaxSize(Double.MAX_VALUE,Double.MAX_VALUE); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args){ launch(args); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |