Я пишу код с использованием Java Swing. В основном, это то, что он обрабатывает некоторую длительную задачу. Во время выполнения задачи я хочу получить всплывающее окно ожидания с изображением GIF.Запуск потока пользовательского интерфейса неопределенно
Мой вопрос заключается в том, что
final InfoDialog infoDialog = new InfoDialog("Parsing file: " + fileToBeUploaded.getName());
final File finalFileToBeUploaded = fileToBeUploaded;
class FileParsingWorker extends SwingWorker<Void, String> {
@Override
protected Void doInBackground() throws Exception {
String text = fileParsers.parseFile(finalFileToBeUploaded);
publish(text);
return null;
}
@Override
protected void process(List<String> chunks) {
infoDialog.setVisible(false);
}
}
infoDialog.setVisible(true);
FileParsingWorker fileParsingWorker = new FileParsingWorker();
fileParsingWorker.execute();
InfoDialog является небольшой UI всплывающее окно с GIF-анимации в нем. В основном, я задал длительную задачу у рабочего, но набор пользовательских интерфейсов в двух местах. Я думаю, если есть какие-то способы, которыми я могу запустить интерфейс InfoDialog в потоке, чтобы я мог повторно использовать этот бит кода?
Проблема заключается в том, что я хочу попытаться запустить InfoDialog бесконечно, пока я намеренно не остановлю его. Если я поставлю setVisible (true) в потоке, этот поток немедленно прекратится, и мой пользовательский интерфейс не будет обновлен.
Может ли кто-нибудь показать мне, как это сделать?
Где вы устанавливаете диалог на видимый? – MadProgrammer