[英]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.