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

JavaFX StyleClassedTextArea样式问题:背景色被字体设置覆盖

问题解决:JavaFX StyleClassedTextArea 样式被覆盖的问题

问题原因

setStyle()方法每次调用都会完全替换控件的内联样式,而非追加。你第二次调用setStyle设置字体族时,直接覆盖了之前设置的背景色样式,导致背景恢复默认白色。

解决方案

将多个样式属性合并到同一次setStyle调用中,或者通过getStyle()获取现有样式后追加新样式:

方法1:合并样式到单次调用(推荐)

textArea = new StyleClassedTextArea();
// 合并背景色、字体族、文本颜色样式
textArea.setStyle(
    "-fx-background-color: " + toRGBCode(Color.rgb(0, 32, 40)) + ";" +
    "-fx-font-family: 'OCR A Extended';" +
    "-fx-text-fill: #ffffff;" // 可根据需求修改文本颜色
);
textArea.setParagraphGraphicFactory(LineNumberFactory.get(textArea));

方法2:追加现有样式

textArea = new StyleClassedTextArea();
textArea.setStyle("-fx-background-color: " + toRGBCode(Color.rgb(0, 32, 40)));
// 获取当前样式并追加字体族设置
textArea.setStyle(textArea.getStyle() + "-fx-font-family: 'OCR A Extended';");
textArea.setParagraphGraphicFactory(LineNumberFactory.get(textArea));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:52:33