如何限制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"));
答案 0 :(得分:4)
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);
答案 1 :(得分:1)
您可以使用以下方法设置ContextMenu的CSS样式:
ContextMenu menu = new ContextMenu();
menu.setStyle("-fx-max-width: your-width-value;");