MenuItem в приложении BlackBerry - PullRequest
0 голосов
/ 01 июля 2011

Я использую некоторые элементы меню в своем приложении, и у меня есть вопрос о методе запуска, который я переопределяю.

private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
    public void run() {
        // Can I write GUI code here?

    }
};

Как говорится в комментарии, могу ли я написать код GUI здесь?Я не могу правильно?Так как я не в теме GUI?Должен ли я использовать invokeLater-метод, когда у меня есть код, который изменяет графический интерфейс?А как насчет диалогов, должны ли они также вызываться в invokeLater-методах?

И обязательно ли переопределять метод run MenuItem, если я создал другой поток, который будет вызываться, когда пользователь выбирает менювещь?Могу ли я вместо этого запустить этот поток в конструкторе?И оставить метод запуска не переопределенным?

Ответы [ 2 ]

3 голосов
/ 01 июля 2011

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

0 голосов
/ 01 июля 2011

Да, вы можете - потому что он находится в потоке пользовательского интерфейса, например:

private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
    public void run() {
        Show.status("Huzzah!");
    }
};

И, похоже, общим правилом является то, что вы не добавляете блокировку вокруг - пока не получите исключение IllegalStateException;-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...