gpt4 book ai didi

java - 如何在边框底部的每个角放置两个按钮

转载 作者:行者123 更新时间:2023-11-29 07:25:24 25 4
gpt4 key购买 nike

我试图放置两个不同的按钮,一个在左下角,另一个在右下角。这两个按钮位于不同的 HBox 中,这两个 HBox 位于 Borderpane

的底部

为此我做了这个,它有效但很丑:

envoisButton = new Button("Envoyer la commande");
envoisButton.setStyle("-fx-font: 20px \"Roboto\";");
envoisButton.setPrefSize(300,50);
envoisButton.setGraphic(new ImageView(new Image("PleinVide/images/OK.png")));
HBox.setMargin(envoisButton,new Insets(0,20,20,20));
HBox rightButtons = new HBox(envoisButton);
rightButtons.setAlignment(Pos.CENTER_RIGHT);

synchroButton = new Button("Synchroniser");
synchroButton.setStyle("-fx-font: 20px \"Roboto\";");
synchroButton.setPrefSize(300,50);
synchroButton.setGraphic(new ImageView(new Image("PleinVide/images/synchronize.png")));
HBox.setMargin(synchroButton,new Insets(0,20,20,20));
HBox leftButtons = new HBox(synchroButton);
leftButtons.setAlignment(Pos.CENTER_LEFT);
HBox buttons = new HBox(leftButtons,rightButtons);
buttons.setSpacing(primaryScreenBounds.getWidth()*0.65); //This is very ugly (primaryScreenBounds == my screen resolution)

borderPane.setBottom(buttons);

这是结果:Expected buttons positions我们可以看到这 2 个按钮在我想要的位置,但是如果将来我想添加另一个按钮,这将根本不起作用:/

你有办法把两个按钮放在角落里吗?非常感谢。

最佳答案

将两个 HBox 包裹在另一个 HBox 中,设置适当的对齐方式,并让它们始终水平增长。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.stage.Stage;

public class App extends Application {

@Override
public void start(Stage primaryStage) throws Exception {
BorderPane root = new BorderPane(new Label("Hello, World!"));

HBox leftBox = new HBox(new Button("Left Button"));
leftBox.setAlignment(Pos.CENTER_LEFT);
HBox.setHgrow(leftBox, Priority.ALWAYS);

HBox rightBox = new HBox(new Button("Right Button"));
rightBox.setAlignment(Pos.CENTER_RIGHT);
HBox.setHgrow(rightBox, Priority.ALWAYS);

HBox bottom = new HBox(leftBox, rightBox);
bottom.setPadding(new Insets(10));
root.setBottom(bottom);

primaryStage.setScene(new Scene(root, 600, 400));
primaryStage.show();
}

}

另一种选择是使用单个 HBox 并使用“填充”区域/ Pane 。例如:

HBox hbox = new HBox();
hbox.getChildren().add(new Button("Left Button"));

Pane filler = new Pane();
hbox.getChildren().add(filler);
HBox.setHgrow(filler, Priority.ALWAYS);

hbox.getChildren().add(new Button("Right Button"));

borderPane.setBottom(hbox);

关于java - 如何在边框底部的每个角放置两个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129931/

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