Я пишу программу 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", но трассировка стека не ссылается ни на какие местоположения, которые есть в моем коде.