SWT кнопка выпадающего меню визуальный глюк

У меня проблемы с визуальными сбоями в моих двух выпадающих меню на панели инструментов. Когда я:

  1. Прокрутите указатель мыши над File кнопка выпадающего меню...

  2. Прокрутите к Options кнопка выпадающего меню...

  3. Прокрутите панель инструментов полностью...

Кнопка "Раскрывающийся файл" остается выделенной, хотя, кажется, она не находится в фокусе. Это происходит и с выпадающим меню "Параметры", если вы прокручиваете 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 );
Другие вопросы по тегам