public class Tester extends Application  {
    private static final int WIDTH = 300;
    private static final int HEIGHT = 400;

    @Override
    public void start(Stage stage) {
        GridPane pane = new GridPane();
        pane.setAlignment(Pos.TOP_LEFT);
        pane.setHgap(10);
        pane.setVgap(10);
        pane.setPadding(new Insets(10, 10, 10, 10));

        pane.add(new Button("cat"), 0, 0);
        pane.add(new Button("monkey"), 0, 1);
        pane.add(new Button("elephant and lion"), 0, 2);

        Scene scene = new Scene(pane, WIDTH, HEIGHT);
        stage.setScene(scene);
        stage.show();
    }
}

显示:

enter image description here

如何使所有按钮具有相同的宽度,如下所示:

enter image description here

我试着把按钮加到VBox上,然后把VBox加到GridPane上,但都不行.

推荐答案

在本例中,您需要将按钮的MaxWidth设置为Positive_Infinity.

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

import java.util.stream.Stream;

public class Tester extends Application {
    private static final int WIDTH = 300;
    private static final int HEIGHT = 400;

    @Override
    public void start(Stage stage) {
        GridPane pane = new GridPane();
        pane.setGridLinesVisible(true);
        pane.setAlignment(Pos.TOP_LEFT);
        pane.setHgap(10);
        pane.setVgap(10);
        pane.setPadding(new Insets(10, 10, 10, 10));

        Button cat = new Button("cat");
        Button monkey = new Button("monkey");
        Button elephant = new Button("elephant and lion");
        pane.add(cat, 0, 0);
        pane.add(monkey, 0, 1);
        pane.add(elephant, 0, 2);

        Stream.of(cat, monkey, elephant).forEach(btn -> btn.setMaxWidth(Double.POSITIVE_INFINITY));

        Scene scene = new Scene(pane, WIDTH, HEIGHT);
        stage.setScene(scene);
        stage.show();
    }
}

Java相关问答推荐

为什么接口中的主函数而不是类中的主函数在Java 17中编译和运行没有问题?

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

ApachePOI:不带换行的新行

为什么我要创建一个单独的互斥体/锁对象?

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

R.id.main给我一个红色错误,无法解析MainActivity.java中的符号main

JPanel透支重叠的JComcoBox

Spark忽略Iceberg Nessie目录

Java编译器抛出可能未正确初始化的错误?

无法使用Java&;TestContainers获取AWS SQS队列的属性

如何解释Java中for-each循环中对Iterable的强制转换方法引用?

在添加AdMob时无法为Google Play构建应用程序包:JVM垃圾收集器崩溃和JVM内存耗尽

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

解析方法";javax/imageio/metadata/IIOMetadata.getAsTree(Ljava/lang/String;)Lorg/w3c/dom/Node时加载约束冲突

X=x*0.90;产生有损转换误差.X*=0.90;不是.为什么?

在缺少字段时使用Jackson With Options生成Optional.Empty()

如何设计包含已知和未知键值对映射的Java类?

为什么使用lo索引来解决二进制搜索问题不同于使用hi索引?

我们可以在方法中声明接口吗?

如何从指定某些字段的父对象创建子对象