Java SWT: widgetSelected против widgetDefaultSelected - PullRequest
5 голосов
/ 13 февраля 2012

Например, я хочу выполнить что-то, когда пользователь нажимает кнопку.Который я использую?Похоже, что документация не очень понятна

ОБНОВЛЕНИЕ

Быстрый тест показывает, что выбранный виджет активирован, но не выбран по умолчанию.

In TasksView.main()

TasksView view = new TasksView(shell, SWT.None);
TasksController controller = new TasksController(view);

In TasksController

public class TasksController extends ControllerAbstract {
    protected TasksView view;

    public TasksController(TasksView view) {
        this.view = view;
        view.addTaskListener(new AddTaskListener());
    }

    protected class AddTaskListener implements SelectionListener {

        @Override
        public void widgetDefaultSelected(SelectionEvent arg0) {
            System.out.println("Default Selected");

        }

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            System.out.println("Widget Selected");

        }

    }
}

Кстати, сделал ли я MVCправильно?

Ответы [ 2 ]

7 голосов
/ 13 февраля 2012

Используйте widgetSelected. На самом деле, лучше просто расширить SelectionAdapter и переопределить только метод widgetSelected и полностью игнорировать widgetDefaultSelected.

4 голосов
/ 13 февраля 2012

SelectionListener.widgetDefaultSelected(e) имеет поведение, зависящее от инструментария. Я обычно просто вызываю SelectionListener.widgetSelected(...). (Обратите внимание, что это не значение по умолчанию в SelectionAdapter.widgetDefaultSelected(e) - вам придется сделать это самостоятельно.

...