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