Swing Worker: функция get ()

Моя проблема в том, что я не понимаю, какswingworker работает, потому что я пытаюсь сделать, это сделатьfa=worker.get() потому что у меня есть длинный метод, который вычисляет много точек, работающих в фоновом режиме, потому что я не хочу замораживать свой интерфейс, и я хочу получить ее результаты, чтобы нарисовать изображение компонента. Но я не понимаю, куда это идет, когда я делаюfa=worker.get() потому что моя консоль печатает"titi" и я положил много другой печати, чтобы увидеть следующую часть программы достигнута, но никто не печатается. Пожалуйста, помогите мне узнать, куда идет компиляция послеget() или пока он выполняется, и если у вас есть представление о том, как реализовать то, что мне нужно, каждый блок кода приветствуется.

public void paintComponent(final Graphics g1){
            // TODO Auto-generated method stub
            final int width=getWidth();
            final int height=getHeight();
            image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
            //On transforme le rectangle de base en un rectangle qui a le meme ratio que le cadre contenant l'ancien
            //(Il yaura dessus la meme fractale mais avec plus de fond noir) afin que l'on puisse zoomer sans deformer la fractale
            frame = frame.expandToAspectRatio((double)getWidth()/getHeight());
            FlameAccumulator fa=null;
            worker= new SwingWorker<FlameAccumulator,FlameAccumulator>(){

                @Override
                protected FlameAccumulator doInBackground() throws Exception {
                    // TODO Auto-generated method stub
                    System.out.println("exception");
                    return builder.build().compute(frame,width,height,density);
                }
            };
            try {
                System.out.println("titi");
                fa=worker.get();
            } catch (InterruptedException | ExecutionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Graphics g0=(Graphics2D)g1;
            if(fa==null){
                System.out.println("toto");
                for (int i = 0; i <height; i++) {
                    for (int j = 0; j < width; j++) {
                        image.setRGB(j,i,0);
                    }
                }
            }
            else{
                System.out.println("tata");
                for (int i = 0; i <height; i++) {
                    for (int j = 0; j < width; j++) {
                        image.setRGB(j,i,fa.color(palette, background, j, height-1-i).asPackedRGB());
                    }
                }
            }
            g0.drawImage(image,0,0,null);
        }

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

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