Я должен выполнить сложный процесс загрузки изображений, который занимает различное количество времени, и пока этот процесс выполняется, я хочу сообщить пользователю, что процесс на самом деле выполняется в фоновом режиме.
Для этого у меня естьуже разочарован в чем-то анимированном, потому что это должно было бы на самом деле находиться в фоновом режиме в другом потоке, поэтому все, что я хочу, это большой красный текст, который говорит что-то вроде "загрузка ... пожалуйста, подождите".
Упрощенный пример:
Main:
public class Controller {
@FXML
StackPane mainPane;
Text text;
public void initialize(){
text = new Text();
text.setText("please wait");
text.setVisible(false);
mainPane.getChildren().add(text);
}
public void handleMouseClick(){
text.setVisible(true);
longProcess();
text.setVisible(false);
}
public void longProcess(){
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Fxml файл:
<?import javafx.scene.layout.StackPane?>
<StackPane fx:controller="sample.Controller"
xmlns:fx="http://javafx.com/fxml"
fx:id="mainPane"
onMouseClicked="#handleMouseClick">
</StackPane>
Таким образом, этот код создает простую область стека и добавляет к ней невидимый текст, а затем по щелчку мышисначала он должен показать текст, затем перевести поток в спящий режим (напоминающий мой длинный процесс), а затем снова сделать текст невидимым, но он просто переходит в спящий режим и по какой-то причине не отображает текст.