我在工具栏中的两个下拉菜单中遇到了视觉故障。当我:
将鼠标指针滚动到File
下拉菜单按钮...
滚动到Options
下拉菜单按钮...
完全滚出工具栏...
“文件”下拉按钮仍然会突出显示,但它似乎并不是焦点。如果您从Options
滚动到File
然后关闭工具栏,则会在“选项”下拉菜单中执行此操作。
以下是创建ToolBar
和ToolItems
final ToolBar toolBar = new ToolBar (mainshell, SWT.DROP_DOWN);
toolBar.setSize(200,35);
toolBar.setLocation(0,0);
ToolItem File = new ToolItem(toolBar, SWT.DROP_DOWN);
File.setText("File");
final Menu FdropMenu = new Menu(mainshell, SWT.POP_UP);
File.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e1) {
if (e1.detail == SWT.ARROW) {
final ToolItem FtoolItem = (ToolItem) e1.widget;
final ToolBar FtoolBar = FtoolItem.getParent();
Point point = FtoolBar.toDisplay(new Point(e1.x, e1.y));
FdropMenu.setLocation(point.x, point.y);
FdropMenu.setVisible(true);
}
}
});
final MenuItem SaveMI = new MenuItem(FdropMenu, SWT.PUSH);
final MenuItem OpenMI = new MenuItem(FdropMenu, SWT.PUSH);
ToolItem itemDrop = new ToolItem(toolBar, SWT.DROP_DOWN);
itemDrop.setText("Options");
final Menu dropMenu = new Menu(mainshell, SWT.POP_UP);
itemDrop.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (e.detail == SWT.ARROW) {
final ToolItem toolItem = (ToolItem) e.widget;
final ToolBar toolBar = toolItem.getParent();
Point point = toolBar.toDisplay(new Point(e.x, e.y));
dropMenu.setLocation(point.x, point.y);
dropMenu.setVisible(true);
}
}
});
我不确定这是我编程中的错误还是SWT中的错误。任何支持将不胜感激。
答案 0 :(得分:1)
我遇到了同样的问题。我发现如果我在SWT.FLAT
构造函数中使用ToolBar
样式参数,则此问题会消失。
在代码中使用此构造函数:
ToolBar toolBar = new ToolBar( parent, SWT.FLAT );