我創建了一個小型文本編輯器窗口,允許用戶更改屏幕中包含的文本區域的一些基本屬性。可用於更改textArea屬性的兩個選項是字體顏色和字體顏色填充,它們都由單獨的顏色拾取器處理。JavaFX更改CSS樣式表中的單一樣式
我在使用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工作表中生效。我不知道這將如何處理多個輸入,即字體顏色多次更改,因爲您創建的方法只是添加到列表數組,而不是更新樣式屬性的值 – dibiasem
我已更新我的答案! –