2013-08-24 3 views
2

J'ai ce fichier css qui définit la taille de police par défaut et tapez l'application JavaFX:Hot mettre à jour dynamiquement la taille de police

.root { 
    -fx-font: 13px Tahoma; 
} 

scene.getStylesheets().add(getClass().getResource("/styles/Styles.css").toExternalForm()); 

Je veux mettre à jour la taille et le type de police à partir du code Java dynamique de la composant racine (tous les composants). Comment puis-je faire ceci?

Remarque: Ce code met à jour le type de police et la taille de tous les composants dans l'application JavaFX.

+0

Vous avez une contradiction dans une question. S'il vous plaît, révisez-le. –

Répondre

2

S'il vous plaît envisager de jeter un oeil à l'officiel JavaFX documentation. Vous y trouverez l'exemple de code qui répond à votre question:

Text t = new Text("That's the text"); 
t.setFont(Font.font ("Verdana", 20)); 

MISE À JOUR

Dans votre contrôleur d'application obtenir une instance de votre volet racine, par exemple AnchorPane et utiliser la fonction setId("") pour définir un nouveau style pour le volet entier (mon actionChange est relié à un bouton sur le volet, ce qui déclenche l'événement/changement):

public class AppController implements Initializable { 
    @FXML 
    private AnchorPane mainPane; 

    @Override 
    public void initialize(URL arg0, ResourceBundle arg1) { 
     // TODO Auto-generated method stub 
    } 

    @FXML 
    public void actionChange() { 
     mainPane.setId("fancytext"); 
    } 
} 

Lorsque vous appuyez sur le bouton, le style de la le volet est changé. J'ai juste utilisé la taille de police comme exemple. Avant, vous devez spécifier le nouveau style dans votre fichier CSS:

.root { 
    -fx-font: 12px Tahoma; 
} 

#fancytext { 
    -fx-font: 20px Tahoma; 
} 

C'est avant:

Before the button is pressed

C'est après que le bouton a été pressé:

After the button is pressed

Questions connexes