Ruby Exception или Ошибка?

Короткий ответ, нет.

Swing - это однопоточная инфраструктура, это означает, что любая вещь, которая блокирует Thread Dispatching Thread, не позволит ему обновлять пользовательский интерфейс или обрабатывать любые новые события (делая UI выглядит так, будто он висел, потому что он имеет).

Конечно, вы можете использовать Thread, но Swing также не является потокобезопасным. Это означает, что ВСЕ изменения в пользовательском интерфейсе ДОЛЖНЫ быть сделаны из контекста Диспетчерского потока событий. Хотя есть способы преодолеть это, самый простой способ - просто использовать Swing Timer.

Познакомьтесь с . Как использовать Swing Timers и Параллелизм в Swing для получения дополнительной информации

Вы также должны взглянуть на Начальные потоки .

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

15
задан Ell 6 June 2010 в 20:39
поделиться

2 ответа

Глядя на список исключений Ruby , SignalException - единственное, что называется * Exception ; все остальное - XXXError (кроме SystemExit и фатальной ). Во всяком случае, практика заключается в том, чтобы называть ваше исключение FooError . Мне не удается найти конкретную причину, по которой SignalException не называется SignalError .

10
ответ дан 30 November 2019 в 22:49
поделиться

Соглашение Module :: # {Type} Error для всего, что вызвано вашим приложением (например, http://weblog.jamisbuck.org/2007/3/7/raising-the -right-exception ). Обработка исключений в Ruby не стратифицируется так же, как в Java, поскольку модель исключения отличается на уровне языка.

Из того, что я видел, соглашения соблюдаются немного более свободно для расширений C / FFI / JNA.

5
ответ дан 30 November 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: