SwingWorker в другом готовом методе SwingWorker

Во-первых, я должен сообщить вам, что я изо всех сил стараюсь научиться кодировать на Java. Это было немного сложно, но я верю, что оно у меня есть. В прошлом я задавал пару вопросов в отношении SwingWorkers и тому подобного. Каждый из которых я думал, что у меня есть, но пришел, чтобы узнать, что я все еще учился делать. Надеюсь, на этот раз не один из тех времен.

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

Теперь на вопрос!

Я создал JFrame, который загружает пару вещей, прежде чем он позволит пользователю перейти на другую страницу, нажать кнопки или что-то еще. Как только он загрузит данные, он разблокирует JFrame, чтобы позволить пользователю взаимодействовать с данными.

Проблема в том, что (на самом деле это не проблема, просто пояснение) мне нужно выполнить еще одну задачу, пока пользователь может взаимодействовать с JFrame таким образом, чтобы он не беспокоил их, но обновит JFrame на основе результаты он нашел. Примером может быть проверка версии. В зависимости от того, устарела версия или нет, сообщите об этом пользователю.

Пример кода Судо
protected void startJFrame() {
    JFrame myFrame = new JFrame();//Starts with disable/invisible components. Preventing the user from doing to much before allowed.
    SwingWorker<Void, Progress> loadingWorker = new SwingWorker<Void, Progress>() {
        @Override
        protected Void doInBackground() throws Exception {
            publish(new Progress(0,"Loading This"));      // Set Percent
            loadingTasks.loadThis();                         // Do Work!!
            publish(new Progress(25,"Loading That"));     // Set Percent
            loadingTasks.loadThat();                         // Do Work!!
            publish(new Progress(50,"Loading More"));     // Set Percent
            loadingTasks.loadMore();                         // Do Work!!
            publish(new Progress(75,"Loading Last"));     // Set Percent
            loadingTasks.loadLast();                         // Do Work!!
            publish(new Progress(100,"Loading Complete"));// Set Percent
            return null;
        }
        @Override
        protected void process(List<Progress> ProgressList) {
            for (Progress p : ProgressList) {
                System.out.println(p.getInt() + "% " + p.getString()); //Show user percent and what its doing.
            }
        }
        @Override
        protected void done() {
            try {
                get();
                loadingTasks.WrapUp();//Set Variables or other small stuff.
                myFrame.userAllowed();//Lets the user interact with the whole JFrame.
                SwingWorker<Void, Void> secondWorker = new SwingWorker<Void, Void>() {
                    @Override
                    protected Void doInBackground() throws Exception {
                        versionCheck.makeItSo();// Do Work!!
                        return null;
                    }
                    @Override
                    protected void done() {
                        try {
                            get();
                            versionCheck.wrapUp();//Set Variables or other small stuff.
                            myFrame.showLabel();//Show a label with specific info.
                        } catch (InterruptedException | ExecutionException e) {
                            e.printStackTrace();
                        }
                    }
                };
                secondWorker.execute();
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
    };
    loadingWorker.execute();
}
Не по теме вопрос с этим кодом.

Я обеспокоен созданием множества объектов, а не избавлением от них, просто чтобы передать несколько переменных. В частности,Прогресс объекты, создаваемые в первом методе doInBackground.

Считается ли это нормально, чтобы сделать это? Будет ли он автоматически распоряжаться объектами прогресса автоматически? Если нет, как бы я избавился от них после того, как с ними покончено?

Ответы на вопрос(1)

Ваш ответ на вопрос