JavaFX应用TableView内的日文字符无抗锯齿效果该如何解决
解决方法如下:
- 全局配置文本渲染参数
在应用启动类的main方法最开头添加以下系统属性配置,修改JavaFX底层渲染逻辑:
public static void main(String[] args) { // 优先开启T2K文本渲染器,适配东亚字符抗锯齿 System.setProperty("prism.text", "t2k"); // 关闭默认的LCD文本优化的兼容问题,也可根据显示效果替换为"true"测试 System.setProperty("prism.lcdtext", "false"); launch(args); }
- 针对TableView单独配置CSS
如果仅TableView内文本显示异常,可以直接在应用CSS文件中添加如下规则,指定单元格的字体平滑规则:
.table-cell { -fx-font-smoothing-type: lcd; /* 可选:指定兼容的日文字体,避免 fallback 到无抗锯齿的默认字体 */ -fx-font-family: "Noto Sans CJK JP", "思源黑体", "MS Gothic", sans-serif; }
如果是用代码创建的节点,也可以直接给Text/Label类的组件设置属性:
text.setFontSmoothingType(FontSmoothingType.LCD);
- 升级JavaFX版本
如果使用的是OpenJFX 11及以下的旧版本,存在已知的东亚字符渲染bug,升级到17或21的LTS版本即可修复大部分默认渲染异常问题。
内容的提问来源于stack exchange,提问作者Ondrej Vencovsky
相关产品推荐
相关产品推荐

