我想在单击MenuItem时是否可以禁用自动关闭MenuBar? 我有几个类似于复选框的MenuItem,因此我可以检查多个MenuItem,并且每次检查时都不希望我的菜单关闭。
感谢。
答案 0 :(得分:0)
我遇到了同样的问题,我将与您分享我的解决方案:
1)创建扩展菜单项的新类MyMenuItemWithCheckBox。 在构造函数中,将元素ID设置为(例如)menuItemWIthCheckBox +唯一文本。 this.getElement()。setId(“ menuItemWithCheckBox_” + menuItemLabel);
2)创建扩展菜单栏的新类MyMenuBar。 通过以下方法覆盖onBrowserEvent方法:
Override
public void onBrowserEvent(Event event) {
if (DOM.eventGetType(event) == Event.ONCLICK && getSelectedItem().getElement().getId().contains("CheckBox")) {
Scheduler.get().scheduleFinally(new Scheduler.ScheduledCommand() {
@Override
public void execute() {
getSelectedItem().getScheduledCommand().execute();
}
});
event.stopPropagation();
} else {
super.onBrowserEvent(event);
}
}
现在总是调用MenuItem的预定命令,但是对于您的情况 菜单复选框框项目,没有菜单栏关闭。
希望对您有所帮助,我花了一天多的时间来创建此解决方案。 :-)
答案 1 :(得分:-1)
首先,直接它是不可能的,因为显示子菜单的弹出面板在MenuBar类中是私有的。
Buuut,有办法这样做......
Simpley从googles代码库中获取当前的MenuBar.java代码,并将其包含在eclipse gwt-project中。
您无需更改任何内容,例如包装deklaration或东西。只需将您的源代码放入项目中,它将在编译期间简单地从gwt-sdk替换原始的MenuBar类(也适用于托管开发模式)。
然后你可以简单地将popup-Panel的属性autoHide设置为false,点击后弹出窗口不应该消失。
答案 2 :(得分:-1)