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
相关产品推荐
相关产品推荐

