2 回答

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊
setOnAction()偵聽器偵聽適用于 MenuItem 的任何操作,因此當(dāng)您單擊 menuItem 時,它會執(zhí)行偵聽器內(nèi)的代碼,
此時將一個新偵聽器分配給 menuItem 上的選擇屬性,該偵聽器將偵聽是否選擇 menuItem下次應(yīng)用任何操作時,第一個操作不會被計算在內(nèi),接下來您要做的是取消選擇 menuItem,在您的情況下不執(zhí)行任何操作,然后再次重新選擇它以執(zhí)行所需的操作,因此無需為同一屬性設(shè)置兩個偵聽器只需監(jiān)聽選擇屬性的變化
checkMenuItem.selectedProperty().addListener((obs, wasSelected, isSelected) -> {
if (isSelected) {
pane.setStyle("-fx-background-color: black");
}
else {
pane.setStyle("-fx-background-color: white");
}
});

TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
setOnAction()偵聽器偵聽適用于 MenuItem 的任何操作,因此當(dāng)您單擊 menuItem 時,它會執(zhí)行偵聽器內(nèi)的代碼,
此時將一個新偵聽器分配給 menuItem 上的選擇屬性,該偵聽器將偵聽是否選擇 menuItem下次應(yīng)用任何操作時,第一個操作不會被計算在內(nèi),接下來您要做的是取消選擇 menuItem,在您的情況下不執(zhí)行任何操作,然后再次重新選擇它以執(zhí)行所需的操作,因此無需為同一屬性設(shè)置兩個偵聽器只需監(jiān)聽選擇屬性的變化
checkMenuItem.selectedProperty().addListener((obs, wasSelected, isSelected) -> {
if (isSelected) {
pane.setStyle("-fx-background-color: black");
}
else {
pane.setStyle("-fx-background-color: white");
}
});
添加回答
舉報