JavaFX в Scala слишком поздно перекрашивать - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть программа 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");
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...