不确定为什么按钮在 Java FX 中不会彼此相邻对齐
Unsure as to why buttons will not align adjacent to each other in Java FX
我是 java fx 的新手。我正在创建一个基本的 GUI,它看起来像这样:
但是,当我尝试我的图像时,它看起来像这样:
我不确定为什么两个按钮之间有很大的差距。我正在使用网格窗格格式。
这是我的代码:
public class Main extends Application {
@Override
public void start(Stage stage) {
//Creating Text field
TextField textField1 = new TextField();
//Creating Buttons
Button submit = new Button("Submit");
Button cancel = new Button("Cancel");
//Creating a Grid Pane
GridPane gridPane = new GridPane();
//Setting size for the pane
gridPane.setMinSize(200, 100);
//Setting the padding
gridPane.setPadding(new Insets(10, 10, 10, 10));
//Setting the vertical and horizontal gaps between the columns
gridPane.setVgap(5);
gridPane.setHgap(1);
//Setting the Grid alignment
gridPane.setAlignment(Pos.CENTER);
//Arranging all the nodes in the grid
gridPane.add(textField1, 0, 0);
gridPane.add(submit, 0, 1);
gridPane.add(cancel, 1,1);
//Creating a scene object
Scene scene = new Scene(gridPane);
//Setting title to the Stage
stage.setTitle("Simple Form");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
不胜感激:-)
此处发生的情况是您的 TextField 设置在左上角 (0,0),但仅跨越一列。您可以看到位于右下角 (1,1) 的取消按钮从 TextField 停止的位置开始(如果您只看 x 位置)。
GridPanes 有一个调试选项,因此您可以更直观地了解发生的情况。直接打电话
gridPane.setGridLinesVisible(true):
此问题的解决方案是将 TextField 设置为 obtain/span 2 列。您可以通过以下任一方式进行调用:
GridPane.setColumnSpan(textField1, 2);
或使用不同的add
方法:
gridPane.add(textField1, 0, 0, 2, 1);
有关 GridPane 工作原理的详细信息,请参阅 https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/GridPane.html。
我是 java fx 的新手。我正在创建一个基本的 GUI,它看起来像这样:
但是,当我尝试我的图像时,它看起来像这样:
我不确定为什么两个按钮之间有很大的差距。我正在使用网格窗格格式。 这是我的代码:
public class Main extends Application {
@Override
public void start(Stage stage) {
//Creating Text field
TextField textField1 = new TextField();
//Creating Buttons
Button submit = new Button("Submit");
Button cancel = new Button("Cancel");
//Creating a Grid Pane
GridPane gridPane = new GridPane();
//Setting size for the pane
gridPane.setMinSize(200, 100);
//Setting the padding
gridPane.setPadding(new Insets(10, 10, 10, 10));
//Setting the vertical and horizontal gaps between the columns
gridPane.setVgap(5);
gridPane.setHgap(1);
//Setting the Grid alignment
gridPane.setAlignment(Pos.CENTER);
//Arranging all the nodes in the grid
gridPane.add(textField1, 0, 0);
gridPane.add(submit, 0, 1);
gridPane.add(cancel, 1,1);
//Creating a scene object
Scene scene = new Scene(gridPane);
//Setting title to the Stage
stage.setTitle("Simple Form");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
不胜感激:-)
此处发生的情况是您的 TextField 设置在左上角 (0,0),但仅跨越一列。您可以看到位于右下角 (1,1) 的取消按钮从 TextField 停止的位置开始(如果您只看 x 位置)。
GridPanes 有一个调试选项,因此您可以更直观地了解发生的情况。直接打电话
gridPane.setGridLinesVisible(true):
此问题的解决方案是将 TextField 设置为 obtain/span 2 列。您可以通过以下任一方式进行调用:
GridPane.setColumnSpan(textField1, 2);
或使用不同的add
方法:
gridPane.add(textField1, 0, 0, 2, 1);
有关 GridPane 工作原理的详细信息,请参阅 https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/GridPane.html。