Voglio cambiare il colore del carattere in TextField. Ho trovato -fx-background-color
, -fx-border-color
per cambiare il colore dello sfondo e del bordo ma nulla per il testo. qualche idea? grazie in advamceCome cambiare il colore del testo in TextField javafx?
11
A
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;");
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;");
}
ho oggetto Color. Come posso cambiare il colore del campo di testo usando questo? – alhelal
@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