2015-04-14 70 views
0

我想要一個MenuItem(更具體的CheckMenuItem),它不會自動隱藏點擊。我知道CustomMenuItem具有此功能,但它應該是CheckMenuItem。JavaFX MenuItem without autohide

+0

什麼是 「過於寬泛」 這個問題???此外,我在答覆之前已經回答了。 – Roland

回答

2

在構造函數中使用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); 
    } 
} 
+0

Jeah,這個工程很好,除了CheckBox沒有擴展到菜單的全部寬度(我有一些其他項目在不同的長度)。有沒有辦法填補菜單的寬度? –