2014-09-27 39 views
0

使用javafx,我有一個按鈕,它在CSS屬性中的textFill設置爲白色。然後在運行期間它需要改變,這發生在這個代碼:更改按鈕在javafx中的textFill屬性

import javafx.scene.control.Button; 
import javafx.scene.paint.Color; 

public class QAButton extends Button { 

    public QAButton(String text) { 
     this.textProperty().set(text); 
    } 

    public void setAnswerVisible(Boolean vis) { 

     if (vis) this.setTextFill(Color.GREEN); 
     else this.setTextFill(Color.BLUE); 
    } 

} 

然而,它沒有做任何事情,textFill將保持白色。我可以做什麼來改變它在運行時? 謝謝。

編輯:我要補充的CSS代碼:

.button { 
    -fx-text-fill: white; 
} 

而且按鈕的ID從JavaFX CSS Reference(第二部分)設置爲

#question { 
    -fx-background-color: darkblue; 
    -fx-background-radius: 0; 
    -fx-max-width: 2000px; 
    -fx-max-height: 200px; 
    -fx-min-height: 80px; 
} 

回答

1

提取:

「的實現允許設計人員通過使用樣式表來覆蓋從代碼設置的屬性值來設計應用程序樣式。「

setStyle API可以解決您的問題。

例子:

this.setStyle("-fx-text-fill: green"); 

現在在風格類中的所有屬性將被覆蓋。 如果這是一個問題,look here

+0

非常感謝,完美的作品! – LocoMH 2014-10-01 17:10:22