2014-07-11 22 views

risposta

9

Gli stili CSS per i controlli di input del testo come TextField per JavaFX 8 sono definiti nel foglio di stile modena.css come di seguito. Crea un foglio di stile CSS personalizzato e modifica i colori come desideri. Utilizzare CSS reference guide se è necessaria assistenza per la comprensione della sintassi e degli attributi e valori disponibili.

.text-input { 
    -fx-text-fill: -fx-text-inner-color; 
    -fx-highlight-fill: derive(-fx-control-inner-background,-20%); 
    -fx-highlight-text-fill: -fx-text-inner-color; 
    -fx-prompt-text-fill: derive(-fx-control-inner-background,-30%); 
    -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border), 
     linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background); 
    -fx-background-insets: 0, 1; 
    -fx-background-radius: 3, 2; 
    -fx-cursor: text; 
    -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */ 
} 
.text-input:focused { 
    -fx-highlight-fill: -fx-accent; 
    -fx-highlight-text-fill: white; 
    -fx-background-color: 
     -fx-focus-color, 
     -fx-control-inner-background, 
     -fx-faint-focus-color, 
     linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background); 
    -fx-background-insets: -0.2, 1, -1.4, 3; 
    -fx-background-radius: 3, 2, 4, 0; 
    -fx-prompt-text-fill: transparent; 
} 

Sebbene l'utilizzo di un foglio di stile esterno è un modo preferito per fare lo styling, è possibile stile in linea, usando qualcosa come di seguito:

textField.setStyle("-fx-text-inner-color: red;"); 
+0

ho oggetto Color. Come posso cambiare il colore del campo di testo usando questo? – alhelal

+1

@alhelal converte l'oggetto colore in una stringa usando il metodo qui: [Come ottenere una stringa web esadecimale dal colore JavaFX ColorPicker?] (Https://stackoverflow.com/questions/17925318/how-to-get-hex-web -string-from-javafx-colorpicker-color), quindi imposta il colore sulla stringa che hai derivato: 'textField.setStyle (" - fx-text-inner-color: "+ colorString +"; ");' – jewelsea

19

Impostazione dei -fx-text-fill lavori per me.

Vedi sotto:

if (passed) { 
    resultInfo.setText("Passed!"); 
    resultInfo.setStyle("-fx-text-fill: green; -fx-font-size: 16;"); 
} else { 
    resultInfo.setText("Failed!"); 
    resultInfo.setStyle("-fx-text-fill: red; -fx-font-size: 16;"); 
} 
Problemi correlati