簡體   English   中英

如何在JavaFX2上下文菜單中限制MenuItem的寬度

[英]How to limit width of MenuItem in JavaFX2 context menu

如何限制ContextMenu最大寬度或強制MenuItem內容的文本換行? MenuItem上沒有這樣的屬性,並且在ContextMenu上設置pref / max / min寬度似乎不起作用。

    ContextMenu contextMenu = new ContextMenu();
    contextMenu.setPrefWidth(200.0);
    contextMenu.setMinWidth(PopupControl.USE_PREF_SIZE);
    contextMenu.setMaxWidth(PopupControl.USE_PREF_SIZE);
    contextMenu.getItems().add(new MenuItem("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"));

MenuItem有一個默認的內部Labeled組件,用於顯示通過MenuItem.setText()設置的文本,看來您很難(如通過CSS ID選擇器使用Node.lookup() )到達該Labeled和對其進行操作。 幸運的是,另一種方法更容易實現,而且我認為一點也不受傷。 另一種方法是使用MenuItem.setGraphic()

Label lbl = new Label("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua");
lbl.setPrefWidth(50);
lbl.setWrapText(true);

MenuItem menuItem = new MenuItem();
menuItem.setGraphic(lbl);

contextMenu.getItems().add(menuItem);

您可以使用以下命令為ContextMenu設置CSS樣式:

    ContextMenu menu = new ContextMenu();
    menu.setStyle("-fx-max-width: your-width-value;");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM