栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaFX:根据Task提示用户,并传回结果?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaFX:根据Task提示用户,并传回结果?

后台线程可以保持忙碌等待。这意味着您可以创建一个

CompletableFuture
,用于
Platform.runLater
创建警报并使用showAndWait将其显示,然后用结果填充未来。在后台线程上的此调用之后,使用来等待结果
Future.get

以下示例生成0到9(含)之间的随机数,并在上打印0-8

textarea
9
是模拟错误,并且询问用户是否应该继续执行任务。

@Overridepublic void start(Stage stage) throws IOException {    textarea ta = new textarea();    Thread thread = new Thread(() -> {        Random rand = new Random();        while (true) { int i = rand.nextInt(10); if (i == 9) {     CompletableFuture<ButtonType> future = new CompletableFuture<>();     // ask for user input     Platform.runLater(() -> {         alert alert = new alert(alertType./confirm/iATION);         alert.setContentText("An error occured. Continue?");         future.complete(alert.showAndWait().orElse(ButtonType.CANCEL)); // publish result     });     try {         if (future.get() == ButtonType.CANCEL) { // wait for user input on background thread  break;         }     } catch (InterruptedException | ExecutionException e) {         e.printStackTrace();         break;     } } else {     Platform.runLater(() ->ta.appendText(Integer.toString(i) + "n"));     try {         Thread.sleep(500);     } catch (InterruptedException e) {         e.printStackTrace();         break;     } }        }    });    thread.setDaemon(true);    thread.start();    Scene scene = new Scene(new VBox(ta));    stage.setScene(scene);    stage.show();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号