Как исправить "(Java: 22494): GDK-WARNING ..." - PullRequest
1 голос
/ 01 апреля 2019

Я пишу программу javafx, и мне нужно, чтобы панель обновлялась с постоянной скоростью. Прямо сейчас он настроен на обновление каждую секунду. Но я получил эту ошибку, которая обычно (но не всегда) сопровождается сбоем в панели, когда вся сцена искажается (это похоже на зеркала на себе в странном прерывистом х шаблоне. Трудно объяснить).

Полная ошибка: (java: 22494): Gdk-WARNING **: 18: 38: 59.118: XSetErrorHandler () вызван с перехваченным ловушкой ошибок GDK. Не делай этого.

Вот код, который у меня есть для таймера:

Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run()  {
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            String x = txtDisplay.getText();
                            txtDisplay.setText(x.substring(1, x.length()) + x.substring(0, 1));
                        } catch (NullPointerException e) {
                            System.out.println("Error.");
                        }
                    }
                });
            }
        }, 0, 500);

Я думаю, что проблема в вышеупомянутом блоке, как будто я нарушаю фундаментальное правило свинга. Моя другая идея состоит в том, что он имеет что-то с двумя методами, редактирующими одну и ту же текстовую область одновременно, потому что у меня есть другие методы, устанавливающие текст текстовой области.

Я был бы рад либо решению ошибки, либо лучшему способу выполнения вышеуказанного метода. Просто нужно запускать каждую секунду без сбоев.

Спасибо.

РЕДАКТИРОВАТЬ: новая разработка, теперь я последовательно получаю "Исключение в потоке" AWT-EventQueue-0 "java.lang.NullPointerException", но трассировка стека не ссылается ни на какие местоположения, которые есть в моем коде.

...