gpt4 book ai didi

java - 为什么程序运行时我的舞台没有反应? ( java 外汇)

转载 作者:行者123 更新时间:2023-11-29 08:34:17 25 4
gpt4 key购买 nike

我有一个简单的 javaFx 应用程序,它从 html 结构中搜索一些文本和一些元素。它有一个小窗口,一个舞台。程序可以正常运行,但是在程序运行的过程中,stage(javaFx窗口)没有响应,卡住了。我想我应该在一个新线程中运行我的舞台,但它没有用。这是我的程序提到的部分。如何在不卡住窗口的情况下运行我的程序?

public class Real_estate extends Application implements Runnable {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
stage.getIcons().add(new Image("http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/house-icon.png"));
stage.setTitle("Simple program 0.8");
stage.setWidth(300);
stage.setHeight(300);
stage.setResizable(false);

HtmlSearch htmlSearch = new HtmlSearch ();
htmlSearch .toDatabase("http://example.com");

}

public static void main(String[] args) {
launch(args);
}

@Override
public void run() {
throw new UnsupportedOperationException("Not supported yet.");
}

最佳答案

在后台线程中运行运行时间较长的代码(大概是htmlSearch.toDatabase(...))。你可以这样做

public class Real_estate extends Application {

@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
stage.getIcons().add(new Image("http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/house-icon.png"));
stage.setTitle("Simple program 0.8");
stage.setWidth(300);
stage.setHeight(300);
stage.setResizable(false);

HtmlSearch htmlSearch = new HtmlSearch ();
new Thread(() -> htmlSearch.toDatabase("http://example.com")).start();

}

public static void main(String[] args) {
launch(args);
}
}

这假设 htmlSearch.toDatabase(...) 不修改 UI;如果是,您需要将修改 UI 的代码包装在 Platform.runLater(...) 中。看,例如Using threads to make database requests有关 JavaFX 中多线程的更详细解释。

关于java - 为什么程序运行时我的舞台没有反应? ( java 外汇),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45512442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com