使用 JavaFX Scene 创建垂直 ButtonBar 的简单方法 Builder/Gluon

Simple way to create a vertical ButtonBar using JavaFX Scene Builder/Gluon

如何在 JavaFX 8 中制作垂直 ButtonBar?

我想要与 ButtonBar 组件完全相同的概念,但 ButtonBar 是水平的,我想要垂直的。所有按钮的大小必须相同。

如果我使用 VBox,我必须手动设置按钮和 VBox 的宽度。

是否有更简单的方法来做到这一点而无需设置宽度?

您需要做两件事:在 VBox 上将 fillWidth 设置为 true,并在每个按钮上设置 maxWidth。最方便的方法可能是 VBox:

的简单子类
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;

public class VerticalButtonBar extends VBox {

    public VerticalButtonBar() {
        setFillWidth(true);
    }

    public void addButton(Button button) {
        button.setMaxWidth(Double.MAX_VALUE);
        getChildren().add(button);
    }

}

然后你可以做

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

public class VerticalButtonBarExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        VerticalButtonBar bar = new VerticalButtonBar();
        bar.addButton(new Button("A"));
        bar.addButton(new Button("Button"));

        BorderPane root = new BorderPane();
        root.setLeft(bar);
        primaryStage.setScene(new Scene(root, 400, 400));
        primaryStage.show();
    }



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

看起来像

如果要使 VerticalButtonBar 对 SceneBuilder 可见,请参阅

据我所知,ButtonBar 无法更改此设置,因此 SceneBuilder 对此无能为力。

您可能想要提交 ButtonBar 的功能请求:http://bugs.java.com/