繁体   English   中英

使用按钮JavaFX填充整个场景

[英]Fill entire scene with buttons JavaFX

我正在尝试在VBox上工作,我想在其中填充最多5个HBox,其中最多包含5个按钮。 另外,我需要调整这些按钮的大小,但无法完成。 已经尝试使用静态方法返回HBox,从

primaryStage.getChildren.addAll(hBoxMethod());

帮助将不胜感激:)

不确定您要做什么。 但是,如果您试图用5x5自动调整大小按钮(如标题所示)填充屏幕,为什么不使用GridPane和AnchorPanes的组合来调整大小。

package sample;

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        AnchorPane rootPane = new AnchorPane();
        Scene scene = new Scene(rootPane, 400, 300);

        GridPane grid = new GridPane();
        MaximizeInAnchorPane(grid);

        // make column and rows resize
        for (int i=0;i <5;i++)
        {
            ColumnConstraints cConstrain = new ColumnConstraints();
            cConstrain.setHgrow(Priority.SOMETIMES);
            grid.getColumnConstraints().add(cConstrain);

            RowConstraints rConstrain = new RowConstraints();
            rConstrain.setVgrow(Priority.SOMETIMES);
            grid.getRowConstraints().add(rConstrain);
        }

        for (int i=0;i <5;i++)
        {
            for (int j=0;j <5;j++)
            {
                // create button and put it in an AnchorPane, that will resize it
                AnchorPane buttonPane = new AnchorPane();
                Button button = new Button("Button");
                MaximizeInAnchorPane(button);
                buttonPane.getChildren().add(button);

                grid.add(buttonPane,i,j);
            }
        }

        rootPane.getChildren().add(grid);
        primaryStage.setTitle("test");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private static void MaximizeInAnchorPane(Node toMaximize)
    {
        AnchorPane.setTopAnchor(toMaximize, 0.0);
        AnchorPane.setRightAnchor(toMaximize, 0.0);
        AnchorPane.setLeftAnchor(toMaximize, 0.0);
        AnchorPane.setBottomAnchor(toMaximize, 0.0);
    }

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

如果您尝试手动调整所有内容的大小,则应查看SplitPane。 这完全取决于您要如何调整大小。

对我来说,它总是可以帮助您使用JavaFX Scene Builder JavaFX Scene Builder弄清楚如何进行所需的布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM