亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

動(dòng)態(tài)修改Javafx中的內(nèi)嵌CSS樣式
P粉311089279
P粉311089279 2024-04-06 20:57:16
0
1
1506

我試圖在應(yīng)用程式最大化時(shí)更改窗格的背景圖像。我的背景是使用內(nèi)嵌 css 設(shè)定的。我為樣式設(shè)定了兩個(gè)不同的變數(shù)和一個(gè) if 語(yǔ)句。但是,我沒(méi)有運(yùn)氣讓它改變樣式。

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

全部回覆(1)
P粉412533525

只要在舞臺(tái)的 maximizedProperty() 新增一個(gè)偵聽(tīng)器即可。屬性和偵聽(tīng)器是 JavaFX API 的基本部分:您可以在 標(biāo)準(zhǔn)文件,或任何好的 JavaFX 教學(xué)。

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

您可能還需要立即使用現(xiàn)有的程式碼設(shè)定適當(dāng)?shù)臉邮健?

如果您願(yuàn)意,也可以使用綁定:

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

綁定可以替換您已有的程式碼;它會(huì)立即套用,並且在 maxmizedProperty 發(fā)生變化時(shí)套用。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板