You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaFX(AtlantaFX)中垂直对齐CheckBox文本?

修复AtlantaFX中CheckBox与Label在ToolBar的垂直对齐问题

使用AtlantaFX的Dracula主题时,ToolBar内的CheckBox文本会比Label文本位置偏低,无法实现垂直对齐。以下是通过CSS修复的几种可行方案:

问题复现代码

public class NewMain extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        Application.setUserAgentStylesheet(new Dracula().getUserAgentStylesheet());
        var checkBox = new CheckBox("aaaaaaaaa");
        var label = new Label("bbbbbbbbbbbb");
        var toolBar = new ToolBar(checkBox, label);
        toolBar.setMinHeight(40);
        var root = new VBox(toolBar);

        var scene = new Scene(root, 400, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

CSS修复方案

方案1:微调CheckBox文本的垂直偏移

直接针对CheckBox的文本元素设置垂直偏移,快速修正位置:

.check-box .text {
    -fx-translate-y: -1px; /* 按需调整偏移量,正数向下,负数向上 */
}

方案2:统一控件的垂直对齐规则

给ToolBar内的CheckBox和Label设置一致的垂直对齐方式,从布局层面解决对齐问题:

.tool-bar .check-box,
.tool-bar .label {
    -fx-alignment: center-left; /* 垂直居中、水平居左 */
    -fx-content-display: left;
}

方案3:调整CheckBox图标的内边距

复选框图标的内边距设置可能导致文本偏移,调整图标内边距间接修正文本位置:

.check-box .box {
    -fx-padding: 2px; /* 调整图标内边距,适配文本高度 */
}

使用方式

将上述任意一种CSS代码保存为styles.css文件,放置在项目的资源目录下,然后在代码中加载该样式表:

// 在创建Scene后添加
scene.getStylesheets().add(getClass().getResource("/styles.css").toExternalForm());

内容的提问来源于stack exchange,提问作者SilverCube

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:47:11