2 回答

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

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