JavaFX布局-ButtonBar
- 常用属性
- buttonOrder
- padding
- buttonMinWidth
 
- 实现方式
- Java实现
- fxml实现
 
- 一个特殊的容器,用于创建一组按钮,水平排列
- 按钮太多,会被遮住,不会自动产生滚动条
常用属性
buttonOrder
预制顺序
buttonBar.setButtonOrder(ButtonBar.BUTTON_ORDER_WINDOWS);
padding
内边距,可以单独设置上、下、左、右的内边距
buttonBar.setPadding(new Insets(10, 10, 10, 10));
buttonMinWidth
按钮最小宽度
buttonBar.setButtonMinWidth(100);
实现方式
Java实现

    public static ButtonBar demo1() {
        ButtonBar buttonBar = new ButtonBar();
        // 内边距
        buttonBar.setPadding(new Insets(10, 10, 10, 10));
        //排序
        buttonBar.setButtonOrder(ButtonBar.BUTTON_ORDER_WINDOWS);
        buttonBar.setButtonMinWidth(100);
        
        for (ButtonBar.ButtonData bData : ButtonBar.ButtonData.values()) {
            Button btn = new Button(bData.name());
            ButtonBar.setButtonData(btn, bData);
            buttonBar.getButtons().add(btn);
        }
        return buttonBar;
    }
fxml实现

<StackPane prefHeight="400" prefWidth="600" alignment="CENTER_LEFT" xmlns="http://javafx.com/javafx/17.0.2-ea"
           xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <ButtonBar prefHeight="40.0" prefWidth="200.0">
            <buttons>
                <Button text="Button 1"/>
                <Button text="Button 2"/>
                <Button text="Button 3"/>
                <Button text="Button 4"/>
                <Button text="Button 5"/>
                <Button text="Button 6"/>
                <Button text="Button 7"/>
                <Button text="Button 8"/>
                <Button text="Button 9"/>
                <Button text="Button 10"/>
            </buttons>
        </ButtonBar>
    </children>
</StackPane>



















