gpt4 book ai didi

JavaFX:HBox中具有相同宽度的按钮

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:29 24 4
gpt4 key购买 nike

我有一个 HBox 和两个(或更多)Button。我希望所有按钮的宽度都相同。我无法以像素为单位设置按钮的宽度,因为文本是从每种语言的资源包中获取的(因此文本的长度是可变的)。这是我试过但没有成功的代码:

Button but1=new Button("Long text");
Button but2=new Button ("Text");
HBox.setHgrow(but1, Priority.ALWAYS);
HBox.setHgrow(but2, Priority.ALWAYS);
HBox hbox=new HBox();
hbox.getChildren().addAll(but1,but2);
Scene scene=new Scene(hbox, 1000, 600);
stage.setScene(scene);
stage.show();

我的错误是什么?

最佳答案

您需要将 Button 的 maxWidth 设置为 Double.MAX_VALUE 并将 HBox.setHgrow() 设置为 Priority .ALWAYS 使 Button 填充 HBox 中的可用宽度。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.stage.Stage;

public class Test extends Application {

@Override
public void start(Stage primaryStage) throws Exception {
Button but1 = new Button("Long text");
Button but2 = new Button ("Text");
HBox hbox=new HBox();
hbox.getChildren().addAll(but1,but2);

but1.setMaxWidth(Double.MAX_VALUE);
but2.setMaxWidth(Double.MAX_VALUE);
HBox.setHgrow(but1, Priority.ALWAYS);
HBox.setHgrow(but2, Priority.ALWAYS);

Scene scene=new Scene(hbox, 1000, 600);
primaryStage.setScene(scene);
primaryStage.show();
}

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

关于JavaFX:HBox中具有相同宽度的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com