Это не имеет ничего общего с базой данных. JavaFx, как и почти все библиотеки GUI, требует, чтобы вы использовали только основной поток пользовательского интерфейса для изменения GUI.
Вам необходимо передать данные из базы данных обратно в основной поток пользовательского интерфейса. Используйте Platform.runLater (), чтобы запланировать запуск Runnable в основном потоке пользовательского интерфейса.
public void getCourseNameOnClick(){
new Thread(new Runnable(){
public void run(){
String courseName = requestCourseName();
Platform.runLater(new Runnable(){
courseCodeLbl.setText(courseName)
});
}
}, "Thread A").start();
}
Кроме того, вы можете использовать Task .