0
我想要一個MenuItem(更具體的CheckMenuItem),它不會自動隱藏點擊。我知道CustomMenuItem具有此功能,但它應該是CheckMenuItem。JavaFX MenuItem without autohide
我想要一個MenuItem(更具體的CheckMenuItem),它不會自動隱藏點擊。我知道CustomMenuItem具有此功能,但它應該是CheckMenuItem。JavaFX MenuItem without autohide
在構造函數中使用CustomMenuItem,setHideOnClick和CheckBox。
編輯:
我只注意到它搞砸了JavaFX中8u40。菜單項文字顏色與背景顏色相同,因此您看不到任何文字。
對此的快速解決方法是設置文本樣式, G。
cb.setStyle("-fx-text-fill: -fx-text-base-color");
這裏有一個完整的例子:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
VBox root = new VBox();
MenuBar menuBar = new MenuBar();
final Menu menu = new Menu("Items");
for(int i=0; i < 10; i++) {
CheckBox cb = new CheckBox("Item " + i);
// workaround: the color of the labels is wrong (white text on white background), we have to set it explicitly
cb.setStyle("-fx-text-fill: -fx-text-base-color");
CustomMenuItem cmi = new CustomMenuItem(cb);
cmi.setHideOnClick(false);
menu.getItems().add(cmi);
}
menu.getItems().add(new MenuItem("This one doesn't stay open"));
menuBar.getMenus().add(menu);
root.getChildren().add(menuBar);
Scene scene = new Scene(root,400,400);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Jeah,這個工程很好,除了CheckBox沒有擴展到菜單的全部寬度(我有一些其他項目在不同的長度)。有沒有辦法填補菜單的寬度? –
什麼是 「過於寬泛」 這個問題???此外,我在答覆之前已經回答了。 – Roland