Modifier dynamiquement les styles CSS en ligne dans Javafx
P粉311089279
P粉311089279 2024-04-06 20:57:16
0
1
810

J'essaie de changer l'image d'arrière-plan d'un volet lorsque l'application est agrandie. Mon arrière-plan est défini à l'aide de CSS en ligne. J'ai configuré deux variables différentes et une instruction if pour le style. Cependant, je n'ai pas de chance de le faire changer de style.

String cssStyle = "-fx-background-image: url(\'file:images/poker_table.png\');" +
                 "-fx-background-position: center center;" +
                 "-fx-background-radius: 15;" + // ************* For rounded corners
                 "-fx-background-size: 100% 100%;";
String cssStyle2 = "-fx-background-image: url(\'file:images/poker_table.jpg\');" +
                  "-fx-background-position: center center;" +
                  "-fx-background-radius: 15;" +
                  "-fx-background-size: 100% 100%;";
if (!primaryStage.isMaximized())
{   gameScreen.setStyle(cssStyle);
}
else
{   gameScreen.setStyle(cssStyle2);
}

P粉311089279
P粉311089279

répondre à tous(1)
P粉412533525

Ajoutez simplement un auditeur à la scène maximizedProperty(). Les propriétés et les écouteurs sont un élément fondamental de l'API JavaFX : vous pouvez les trouver dans la documentation des standards, ou dans tout bon tutoriel JavaFX.

primaryStage.maximizedProperty().addListener((obs, wasMaximized, isNowMaximized) -> {
    if (isNowMaximized) {
        gameScreen.setStyle(cssStyle2);
    } else {
        gameScreen.setStyle(cssStyle);
    }
});

Vous souhaiterez peut-être également définir immédiatement les styles appropriés en utilisant le code existant.

Vous pouvez également utiliser des fixations si vous préférez :

gameScreen.styleProperty().bind(Bindings.createStringBinding(
    () -> primaryStage.isMaximized() ? cssStyle2 : cssStyle,
    primaryStage.maximizedProperty()
);

Binding remplace votre code existant ; il est appliqué immédiatement et lorsque maxmizedProperty change.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal