Java Jframe зависает при перерисовке на холсте - PullRequest
1 голос
/ 03 февраля 2020

Я редактирую, как вы рекомендуете, используя таймер Swing. Но мой холст не отвечает, я имею в виду, что в этой функции я заполняю объекты, а затем я хочу перекрасить, но он перерисовывается, не делая объекты зелеными.

private void paintSearch(Vector<NodeGraph2D> vector,Graphics graphics2D) {
    if (!vector.isEmpty()) {
        Timer timer = new Timer(1000, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (repaint) {
                    if (vector == pruferTreeNodes) {
                        vector.elementAt(i).draw((Graphics2D) graphics2D);
                    } else {
                        graphics2D.setColor(Color.GREEN);
                        System.out.println(vector.elementAt(i).getNodeGraph().getName());
                        ((Graphics2D) graphics2D).fill(vector.elementAt(i));
                        graphics2D.setColor(Color.BLACK);
                        ((Graphics2D) graphics2D).drawString(vector.elementAt(i).getNodeGraph().getName(), vector.elementAt(i).getX1() + 15, vector.elementAt(i).getY1() + 25);
                    }
                    i++;
                }

            }

        });
        timer.start();
    }
}

Так что таймер, я думаю, работает, но я не знаю, может ли таймер Swing работать вместе с canvas.

...