Ho una semplice scena con questo codice:JavaFX 2 e CSS pseudo-classi: hover impostazione attributi di metodo setStyle
scene.getStylesheets().add("packagename/testcss.css");
E il mio testcss.css è:
.button {
-fx-background-color: #DDFFA4;
}
.button:hover {
-fx-background-color: #9ACD32;
}
Quello che raggiungere è il bel effetto che è al passaggio del mouse quando si trovano nelle applicazioni web.
...
DOMANDA
Come posso ottenere lo stesso effetto, ma senza un file CSS separato, solo attraverso il metodo setStyle della mia Button?
Il problema è che setStyle accetta solo la definizione di stile e lascia fuori il selettore.
button.setStyle("-fx-background-color: #DDFFA4;");
Il selettore, nel mio caso hover è la pseudo-classe:
.button:hover
ma dove dovrei impostarlo?
Inoltre, il javadoc è esplicito nella escludendo il selettore dal metodo setStyle argomento:
noti che, come l'attributo stile HTML, questa variabile contiene stile proprietà e valori e non la porzione selettore una regola di stile.
+1 per la completezza della risposta sia con l'innovativo (basata legame) e la soluzione tradizionale (evento in base). Interessante anche il fatto del gruppo in changeBackgroundOnHoverUsingEventi l'impostazione degli eventi e l'inizializzazione allo stile standard, in questo modo abbiamo un unico punto di configurazione per il widget, riducendo il rischio di modifiche incoerenti e evidenziando che la soluzione basata su eventi richiede il passaggio aggiuntivo di inizializzazione. Tale metodo può anche essere visto come inizializzatore, con qualche nome come "initButtonStyle". – AgostinoX
Ciao Jewelea, hai detto che JavaFX 8 consente alcune modifiche. Possiamo avere un link o un esempio :).Perché la domanda è davvero vecchia e ha bisogno di un po 'di aggiornamento in questa parte. – GOXR3PLUS
Risposta aggiornata al collegamento all'API di sfondo JavaFX 8. – jewelsea