【发布时间】:2017-05-17 18:00:11
【问题描述】:
我创建了一个小型文本编辑器窗口,允许用户更改屏幕中包含的文本区域的一些基本属性。可用于更改 textArea 属性的两个选项是字体颜色和字体颜色填充,它们都由单独的颜色选择器处理。
我在使用 setStyle 方法测试这些按钮时遇到了一个问题,即一次只能保存一个属性。例如,如果文本颜色设置为蓝色,然后填充颜色设置为黄色,则文本颜色不会保持蓝色,而是恢复为样式表中定义的默认值(黑色)。
为了解决这个问题,我创建了以下方法;
private void updateTheSyle()
{
this.textArea.setStyle("-fx-control-inner-background: " + toRgbString(this.colorPickerFill.getValue()) +
"; -fx-text-fill: " + toRgbString(this.colorPickerFont.getValue()) + ";");
}
toRgbString() 方法也被调用,这只是将用户输入从颜色选择器传递到一个字符串中,这样 setStyle 方法就可以将正确的参数传递给样式表。
此解决方案确实有效,因为它使我能够更改填充和字体颜色,而无需在选择时恢复为默认值。但是,我的程序不仅仅包含填充和字体颜色,当添加这些选项时,这将导致更长的 setStyle 语句。
TLDR:有没有办法编辑 CSS 样式表中包含的单个样式而不影响给定类中的其他样式?
【问题讨论】:
标签: css javafx colors stylesheet