JavaFX工具栏的子项周围总是有填充空间。有没有办法控制这个,所以侧面没有空间(第一个项目,另一个边缘的最后一个项目),顶部和底部?
答案 0 :(得分:1)
只需将工具栏的填充设置为0px即可。例如:
toolbar.setStyle("-fx-padding: 0px;");
建议您在外部样式表中而不是在代码中设置任何样式。
没有填充:
使用填充:
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.