SWT кнопка выпадающего меню визуальный глюк
У меня проблемы с визуальными сбоями в моих двух выпадающих меню на панели инструментов. Когда я:
Прокрутите указатель мыши над
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. Любая поддержка будет оценена.
1 ответ
У меня такая же проблема. Я обнаружил, что если я использую SWT.FLAT
параметр стиля в ToolBar
В конструкторе эта проблема исчезает. Используйте этот конструктор в вашем коде:
ToolBar toolBar = new ToolBar( parent, SWT.FLAT );