适合JavaFX ToolBar的项目

时间:2015-05-12 23:50:55

标签: javafx toolbar

JavaFX工具栏的子项周围总是有填充空间。有没有办法控制这个,所以侧面没有空间(第一个项目,另一个边缘的最后一个项目),顶部和底部?

1 个答案:

答案 0 :(得分:1)

只需将工具栏的填充设置为0px即可。例如:

toolbar.setStyle("-fx-padding: 0px;");

建议您在外部样式表中而不是在代码中设置任何样式。

没有填充:

no pad

使用填充:

with pad

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.stage.Stage;

public class Girlfriend extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        ToolBar toolbar = new ToolBar(
                new Button("Open Fridge"),
                new Button("Get Beer"),
                new Button("Repeat")
        );
        toolbar.setStyle("-fx-padding: 0px;");

        stage.setScene(new Scene(toolbar));
        stage.show();
    }

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

更新其他问题

  

有没有办法专门控制放置的填充而不是?例如,我想保持顶部填充,但摆脱底部填充等。

是的,请参阅JavaFX CSS reference

  

-fx-padding

     

<size> | <size> <size> <size> <size>

     

一组四个填充值,以逗号分隔。对于系列中的每个项目,单个填充值意味着所有填充都相同;如果指定了一组四个填充值,它们将按顺序用于区域的顶部,右侧,底部和左侧边缘。

.tool-bar CSS类的默认填充可以在modena.css的{​​{1}}中从JRE中找到,并在Java 8u40中定义为:

jfxrt.jar

因此,要保持顶部,右侧和左侧填充,但删除底部填充,请使用以下值:

-fx-padding: 0.416667em 0.5em 0.416667em 0.5em; /* 5 6  5 6 */

哪个应该在CSS样式表中,所以你真的会这样做:

-fx-padding: 0.416667em 0.5em 0em 0.5em; /* 5 6  0 6 */

在自定义样式表中将样式定义为:

toolbar.getStyleClass().add("flush-bottom"); // hmm unfortunate name.