Я всегда программировал консольные приложения и изучал некоторые базовые навыки UML / шаблонов, используя C ++.
Теперь я решил перейти на Java и добавить GUI в свои программы.
Первый вопрос:как обрабатывать слой GUI в программе desing.Я имею в виду, как я должен отделить весь код GUI (добавление компонентов, базовую обработку событий) с кодом, который действительно выполняет свою работу (скажем, при нажатии какой-либо кнопки).
Другой вопрос, связанный с EDT,Я читал, что (почти) все компоненты Swing должны работать в одном потоке (обычно EDT), потому что они не являются поточно-ориентированными.Поэтому я подумал, что если «тяжелый код» вызывается из (например) ActionListener
, то графический интерфейс станет безразличным в течение некоторого времени, пока не закончится этот «тяжелый код».
Это довольно нежелательно, поэтому яЯ думаю, что естественное решение состоит в том, чтобы запустить тяжелый код, возможно, в другом потоке или сделать что-то подобное (я знаю, что это нужно делать осторожно, потому что я больше не мог предположить, что после того, как пользователь нажал кнопку, «глубокое действие»)выполняется до обработки другого события GUI).
Итак, как вы видите, у меня много вопросов о том, как включить GUI в мои шаблоны, чтобы сохранить все достаточно независимыми и легко поддерживаемыми;и некоторые вопросы об особенностях компонентов Swing и отзывчивости.