У меня есть программа Scala с графическим интерфейсом JavaFX.Когда я запускаю кнопку, я отключаю свою кнопку и изменяю текст метки перед вызовом функции, выполнение которой занимает несколько десятков секунд (RobotWebCore.runSearch ()).Проблема в том, что графический интерфейс не отображает изменения, которые я вносил в него до вызова моей функции (но только после): /
Вот мой код:
class GuiController extends Initializable {
@FXML
var GUI : VBox = null;
@FXML
var RQ_TEXT_FIELD : TextField = null;
@FXML
var SEARCH_BUTTON : Button = null;
@FXML
var STATE_LABEL : Label = null;
override def initialize(location : URL, resources : ResourceBundle ) = {
Printer.activeGui = true;
GuiController.instance = this;
SEARCH_BUTTON.setOnMousePressed(e => runSearch());
}
def setStateMessage(message: String) = STATE_LABEL.setText(message);
private def runSearch() = {
val p = ExpressionParser.LocalParser.parse(RQ_TEXT_FIELD.getText);
if (p.successful) {
GUI.setCursor(Cursor.WAIT);
SEARCH_BUTTON.setDisable(true);
setStateMessage("Recherche en cours");
RobotWebCore.runSearch(p.get);
SEARCH_BUTTON.setDisable(false);
GUI.setCursor(Cursor.DEFAULT);
} else {
setStateMessage("Requête invalide ! Exemple : (chat and chat) or perroquet");
}
}
}