java - 如何使用 JavaFX 将 "inputPane"居中

标签 java user-interface javafx layout borderpane

如何在 JavaFX 中将面板 inputPane 置于 BorderPane 中心?

这是我的代码。

public class MainStage {
    private Scene mainScene;
    private InputPane inputPane;
    private DisplayPane displayPane;
    private EditPane editPane;
    private BorderPane borderPane;

    private VBox mainPane;

    public MainStage(){
        borderPane = new BorderPane();
        inputPane=new InputPane();
        displayPane=new DisplayPane();
        editPane=new EditPane();


        mainPane=new VBox();
        mainPane.getChildren().addAll(inputPane.getPane(),displayPane.getTable(),editPane.getPane());
        mainPane.setSpacing(10);

        mainScene=new Scene(mainPane,800,480);
        mainScene.getStylesheets().add("styleSheet.css");
    }
    public Scene getMainScene() {
        return mainScene;
    }
    public InputPane getInputPane() {
        return inputPane;
    }
    public DisplayPane getDisplayPane() {
        return displayPane;
    }
    public EditPane getEditPane(){
        return editPane;
    }
}

我正在尝试修改 InputPane 类。

public class InputPane {

    private Text server;
    private Text textNumber;
    private TextField tfNumber;

    private Button addButton;
    private GridPane griglia;

    public InputPane() {

        textNumber=new Text("Insert Port Number: ");
        server = new Text("SERVER");
        server.setStyle("-fx-font-weight:bold;"
                       +"-fx-color: black;"
                       +"-fx-font-size: 18;");
        tfNumber = new TextField();
        tfNumber.setTextFormatter(new TextFormatter<>(new NumberStringConverter()));

        griglia=new GridPane();

        griglia.add(server,1,0);
        griglia.add(textNumber,0,1);
        griglia.add(tfNumber,1,1);
        griglia.setVgap(5);
        griglia.setHgap(10);

        GridPane.setHalignment(server, HPos.CENTER);
        GridPane.setHalignment(textNumber, HPos.CENTER);

    }

    public GridPane getPane() {
        return griglia;
    }
    public Button getAddButton() {
        return addButton;
    }
}

我给你一些关于如何现在看到我的 GUI 的想法:

这就是结果
This is the result

我想做这样的事情
And I would like to make somethink like this

谢谢

最佳答案

您的问题不太清楚:

How can I center my panel inputPane in a BorderPane, in JavaFX?

但是在您的示例中,您从不使用 BorderPane,只使用 VBox

要回答您的问题,只需使用 HBox 作为 GridPane 的父级,并将对齐属性设置为 Pos.CENTER

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        BorderPane bord = new BorderPane();
        HBox hb = new HBox();
        GridPane griglia = new GridPane();
        Text server = new Text("SERVER");
        griglia.add(server, 1, 0);
        griglia.add(new Text("Numero Porta"), 0, 1);
        griglia.add(new TextField(), 1, 1);
        griglia.setVgap(5.0);
        griglia.setHgap(5.0);
        GridPane.setValignment(server, VPos.CENTER);
        GridPane.setHalignment(server, HPos.CENTER);
        hb.getChildren().add(griglia);
        hb.setStyle("-fx-border-color:red");
        hb.setAlignment(Pos.CENTER);
        bord.setTop(hb);
        primaryStage.setScene(new Scene(bord, 800, 500));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

关于java - 如何使用 JavaFX 将 "inputPane"居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074917/

相关文章:

java - BIRT Excel 格式的奇怪单元格值

java - Android服务定期在后台执行任务?

c++ - Visual C++ 6初学者教程

eclipse - 如何在 Eclipse 中使用 fxml?

java - 使用 Intellij 启动 javaFx 应用程序失败

java - netscape.javascript.JSException : SyntaxError: Unexpected keyword 'this' . 预计 ')' 结束参数列表

java - MVP4G 主持人未设置

java - Java 中的 RSS 提要解析器库

user-interface - 我可以使用 Spec 在 Seaside 中构建用户界面吗?

html - 关于安全产品GUI布局的建议