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

时间:2015-11-26 14:37:19

标签: javafx javafx-8 scenebuilder

如何在JavaFX 8中创建垂直ButtonBar?

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

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

有没有更简单的方法来设置宽度?

2 个答案:

答案 0 :(得分:2)

您需要做两件事:在fillWidth上将VBox设置为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);
    }
}

看起来像

enter image description here

如果您想让VerticalButtonBar对SceneBuilder可见,请参阅Adding a custom component to SceneBuilder 2.0

答案 1 :(得分:1)

据我所知,ButtonBar无法改变这一点,所以SceneBuilder无法做到这一点。

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