User interface 如何在javafx中显示正在加载的gui

User interface 如何在javafx中显示正在加载的gui,user-interface,javafx,User Interface,Javafx,此函数加载我的“请稍候…”gui: 我该怎么称呼它,因为当我直接称呼它时,它总是空的。仅显示带有标题的窗格。我发现了很多für Swing的代码片段,但没有针对javafx的 编辑: 我从主gui的控制器中调用它,如下所示: mainApp.showLoading(primaryStage); AllgemeinTab liveWerte = new AllgemeinTab(this); liveWerte.setName(getAllgTabName()); liveWerte.setBes

此函数加载我的“请稍候…”gui:

我该怎么称呼它,因为当我直接称呼它时,它总是空的。仅显示带有标题的窗格。我发现了很多für Swing的代码片段,但没有针对javafx的

编辑:

我从主gui的控制器中调用它,如下所示:

mainApp.showLoading(primaryStage);
AllgemeinTab liveWerte = new AllgemeinTab(this);
liveWerte.setName(getAllgTabName());
liveWerte.setBeschreibungDe(getAllgTabBeschreibungDe());
然后,接下来是一个大型数据库事务

这是我的FXML文件:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.image.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="64.0" prefWidth="292.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.ernst.loading.LoadingController">
<children>
<ImageView fx:id="imgLoading" fitHeight="25.0" fitWidth="25.0" layoutX="20.0" layoutY="20.0" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="19.0" AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="20.0">
     <image>
        <Image url="@loading.gif" />
     </image>
  </ImageView>
  <Text layoutX="54.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Status:" AnchorPane.topAnchor="17.0">
     <font>
        <Font name="System Bold" size="12.0" />
     </font></Text>
  <Text fx:id="txtLoadingDescription" layoutX="54.0" layoutY="24.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Beschreibung..." wrappingWidth="230.44140625" AnchorPane.topAnchor="30.0" />
</children>
</AnchorPane>

您可以通过显示

因此,显示ProgressIndicator,然后需要在新线程中进行后台工作,然后用新内容替换ProgressIndicator

final ProgressIndicator progress = new ProgressIndicator();
progress.setMaxSize(50, 50);
rootPane.setCenter(progress);

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Platform.runLater(new Runnable() {

            @Override
            public void run() { 
                   rootPane.setCenter(new Label("done"));
            }
        });  
    }
}).start();
您可以通过显示

因此,显示ProgressIndicator,然后需要在新线程中进行后台工作,然后用新内容替换ProgressIndicator

final ProgressIndicator progress = new ProgressIndicator();
progress.setMaxSize(50, 50);
rootPane.setCenter(progress);

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Platform.runLater(new Runnable() {

            @Override
            public void run() { 
                   rootPane.setCenter(new Label("done"));
            }
        });  
    }
}).start();
您可以通过显示

因此,显示ProgressIndicator,然后需要在新线程中进行后台工作,然后用新内容替换ProgressIndicator

final ProgressIndicator progress = new ProgressIndicator();
progress.setMaxSize(50, 50);
rootPane.setCenter(progress);

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Platform.runLater(new Runnable() {

            @Override
            public void run() { 
                   rootPane.setCenter(new Label("done"));
            }
        });  
    }
}).start();
您可以通过显示

因此,显示ProgressIndicator,然后需要在新线程中进行后台工作,然后用新内容替换ProgressIndicator

final ProgressIndicator progress = new ProgressIndicator();
progress.setMaxSize(50, 50);
rootPane.setCenter(progress);

new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Platform.runLater(new Runnable() {

            @Override
            public void run() { 
                   rootPane.setCenter(new Label("done"));
            }
        });  
    }
}).start();

你可能想看看 (). 预加载程序是一个非常小的应用程序,它有一个在应用程序加载之前加载的阶段,您可以向预加载程序发送一些信息以显示进度


这可能会为您提供更多选项

您可能需要查看 (). 预加载程序是一个非常小的应用程序,它有一个在应用程序加载之前加载的阶段,您可以向预加载程序发送一些信息以显示进度


这可能会为您提供更多选项

您可能需要查看 (). 预加载程序是一个非常小的应用程序,它有一个在应用程序加载之前加载的阶段,您可以向预加载程序发送一些信息以显示进度


这可能会为您提供更多选项

您可能需要查看 (). 预加载程序是一个非常小的应用程序,它有一个在应用程序加载之前加载的阶段,您可以向预加载程序发送一些信息以显示进度


这可能会给你更多的选择

创建和发布一个。您发布的代码似乎没有问题。您可以粘贴fxml文件吗?创建并发布一个。您发布的代码似乎没有问题。您可以粘贴fxml文件吗?创建并发布一个。您发布的代码似乎没有问题。您可以粘贴fxml文件吗?创建并发布一个。您发布的代码似乎没有问题。您可以粘贴fxml文件吗?