Я собрал приложение, которое открывает текстовые файлы и позволяет пользователям редактировать их (например, текстовый редактор).
Некоторые текстовые файлы могут быть сколь угодно большими, поэтому их открытие может занять некоторое время. Я добавил индикатор выполнения, чтобы информировать пользователя о том, что что-то происходит на самом деле, и я использую Swing Worker для выполнения фактической загрузки файла, давая ему ссылку на текстовую область для вывода всего текста.
У меня также есть флаг в основном приложении под названием isFileLoaded
, который является истинным, если файл открыт, и ложным в противном случае. В идеале рабочий процесс Swing должен установить это значение после завершения загрузки файла и выполнения необходимой обработки.
Я написал Swing Worker как отдельный класс, поэтому он не вложен в мой основной класс Frame, который содержит всю логику графического интерфейса, главным образом потому, что я не люблю определять классы внутри классов исключительно из эстетических соображений. Таким образом, в настоящее время я передаю ссылку на весь фрейм рабочему процессу свинга и позволяю ему установить значение флага.
Это хороший способ сделать что-то? Есть ли лучшие способы?