использование Swingworker дает неверные результаты

Мой проект следует следующему алгоритму: введите здесь описание изображения

Я хочу использовать swingworker. Вот как я его использую, но результаты не правильные

В моем коде GUI мой код предназначен для выполнения основного класса

Я написал следующие строки кода в коде кнопок

     Main f2 = new Main();

    f2.execute();

В моем основном классе я сделал это

      class Principalclass extends SwingWorker<Void, Void>
          {
            @Override
            public Void doInBackground() throws IOException 
             {
               //while loop
              }
           @Override
            public void done() {
              System.out.println("I am DONE");
              GUI b = new GUI();   
              b.ShowFrame();   //calls the function of the GUI to display frame
             }

Теперь этот код без печати «Я СДЕЛАН» отображает фрейм графического интерфейса. Я сбит с толку, если мне нужно внести некоторые изменения в классы 2,3 и 4, потому что я использую Swingworker или если мне нужно внести дальнейшие изменения только в основной класс. Во-вторых , приложение, которое должно занять 15 минут, чтобы выполнить свою задачу, это занимает всего 2 секунды :(. Может быть, я делаю что-то серьезно неправильно, потому что я впервые использую Swing Worker.


person Xara    schedule 18.05.2012    source источник
comment
Чтобы быстрее получить помощь, опубликуйте SSCCE.   -  person Andrew Thompson    schedule 18.05.2012


Ответы (1)


Вы должны выполнить своего рабочего свинга и сделать это из EDT. Подробнее см. здесь.

person dhblah    schedule 18.05.2012