javafx平台runlater返回结果

2023-12-14

我正在开发 JavaFX 应用程序,在我的场景中是显示在 JavaFX 中创建的密码提示,该提示需要带有两个选项的密码OK and Cancel。我已返回用户输入的密码。

我的显示密码对话框的类别是 -

public static String showPasswordDialog(String title, String message, Stage parentStage, double w, double h) {
    try {
        Stage stage = new Stage();
        PasswordDialogController controller = (PasswordDialogController) Utility.replaceScene("Password.fxml", stage);
        passwordDialogController.init(stage, message, "/images/password.png");
        if (parentStage != null) {
            stage.initOwner(parentStage);
        }
        stage.initModality(Modality.WINDOW_MODAL);
        stage.initStyle(StageStyle.UTILITY);
        stage.setResizable(false);
        stage.setWidth(w);
        stage.setHeight(h);                
        stage.showAndWait();
        return controller.getPassword(); 
    } catch (Exception ex) {
         return null;
    }

我的显示密码提示的代码如下,实际上这个提示将显示在其他用户界面上,所以我需要将其包含在里面Platform.runlater(),否则它会抛出Not on FX application thread。我需要显示此密码提示,直到我得到正确的密码。如果我在 runlater.txt 中包含显示密码,如何获取密码值?

还有其他更好的办法吗?

final String sPassword = null;

          do {
            Platform.runLater(new Runnable() {

                @Override
                public void run() {
                     sPassword = JavaFXDialog.showPasswordDialog(sTaskName + "Password", "Enter the password:", parentStage, 400.0, 160.0);
                }
            });

            if (sPassword == null) {
                System.out.println("Entering password cancelled.");
                throw new Exception("Cancel");
            }
        } while (sPassword.equalsIgnoreCase(""));

我建议将代码包装在FutureTask目的。FutureTask是一种有用的构造(除其他外),用于在一个线程(通常是一个工作线程,在您的情况下是事件队列)上执行部分代码并在另一个线程上安全地检索它。FutureTask#get将阻塞直到FutureTask#run已被调用,因此您的密码提示可能如下所示:

final FutureTask query = new FutureTask(new Callable() {
    @Override
    public Object call() throws Exception {
        return queryPassword();
    }
});
Platform.runLater(query);
System.out.println(query.get());

As FutureTask实现了Runnable,你可以直接将其传递给Platform#runLater(...). queryPassword()将在事件队列上进行 inokved,并且随后对 get 的调用会阻塞,直到该方法完成。当然,您需要循环调用此代码,直到密码实际匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javafx平台runlater返回结果 的相关文章

  • Mac 上的 JavaFX WebView 字体问题

    有些网站显示乱码而不是正确的文本 它只发生在 Mac 上 For example with GMapsFX 可能与 OS X 10 11 或 10 12 有关 我用Java 1 8 0 121测试了它 此问题有任何修复或解决方法吗 就我而言
  • JavaFX 可以在 Android 上运行吗?

    如果不这样做那就太可惜了 因为这将使 Android 应用程序看起来更有吸引力 现在还不行 要让它发挥作用将是一项艰巨的任务 Android 不具备典型桌面 JRE 所具备的所有库 尽管Android是开源的并且它会运行任何可以编译为Dal
  • JavaFX 多线程 - 连接线程不会更新 UI

    我正在尝试创建一个加载程序对话框 用户可以在其中知道程序正在加载所请求的内容并且程序正在按预期运行 但正因为如此 我需要join 解析器线程和之前继续主线程 这使得对话框空白 解析器任务 java public class ParserTa
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 如何强制 JavaFX 字体抗锯齿?

    在测试 JavaFX 8 应用程序的 GUI 时 我注意到某些标签不显示抗锯齿文本 经过一番谷歌搜索和挣扎后 我发现正在发生一件非常烦人的事情 抗锯齿仅应用于字体大小大于 80 像素的标签 下面是一个比较应用了 AA 的 JavaFX 和
  • JavaFX 抛出 ArrayIndexOutOfBoundsException

    我正在尝试使用 JavaFX 标签和组 通过鼠标拖动将它们移动到屏幕上 新节点从某些线程添加到动画组中 然而 有时我会突然看到以下异常 我假设 当某些节点重叠时 但我不知道问题是什么 因为我的代码不涉及 有谁知道这个异常和根本原因 使用JD
  • JavaFX 脚本和 Java

    简单的问题 我可以在桌面应用程序中混合 Java 和 JavaFX Script 代码吗 如果可能的话 您能给我提供一些示例链接吗 或者我可以将定制的 javafx CustomNode s 打包在 jar 中 并在我的项目中与标准 SWI
  • 在 javafx.scene.control.TextArea 和 javafx.scene.control.TextField 中设置插入符位置

    我需要在代码中手动设置插入符位置 有一个getCaretPosition under javafx scene control TextInputControl但没有setter方法 如何设置插入符位置 TextArea ta new Te
  • JavaFX:在 WebView img 标签中未加载本地图像

    以下是我的代码 一切安好 我可以加载远程页面 我可以放置 HTML 内容 但我的img标签显示一个X标志表示无法加载图像 Note 我的图像与类位于同一个包中JavaFX在 Smiley 文件夹中 我可以列出所有图像 这意味着路径没有问题
  • 使用 JavaFX 和 Maven 将模块描述符添加到库中[重复]

    这个问题在这里已经有答案了 我需要使用反思 https github com ronmamo reflections在一个带有 JavaFX 的 Maven 项目中 我想使用jlink捆绑一个最小的 JRE 问题是我运行时出现以下错误mvn
  • 解析节点的 CSS 属性

    也许我的 google fu 今天让我失望了 但我还没有找到一种方法来解析节点的任意属性以获得样式属性 例如 我希望能够询问节点 fx fill 的值是多少 如果有 一个简单的应用程序示例 我想为图表构建自定义图例 为此 我必须向渲染节点询
  • JavaFX 中画布的最大尺寸

    有谁知道JavaFX中画布的最大尺寸 从一些测试来看 它似乎是 8192 与 IE 相同 在我看来 这很奇怪 或许 可以修改吗 这可能取决于您的显卡的最大纹理大小 因为我相信 使用最常见的硬件加速渲染管道 画布最终将表示为纹理 我不太清楚
  • 如何理解JavaFX三角形网格?

    只是想了解有关三角形网格的 JavaFX 文档 这段代码可以工作并绘制一个矩形 public class Shape3DRectangle extends TriangleMesh public Shape3DRectangle float
  • JavaFX 绑定失败并显示“无法绑定到无类型对象”。

    我有一个定义 JavaFX 用户界面的 FXML 文件 在 FXML 文件中 我有以下内容
  • 在 JavaFX 中如何在屏幕上移动精灵?

    我是 JavaFX 新手 正在尝试编写一个游戏 其中动画 2D 角色在屏幕上行走 例如原始的 塞尔达传说 游戏 我在 Swing 中完成了此操作 方法是创建自己的 Sprite 类并重写 Swing 中的 PaintComponent 方法
  • JavaFX:使用 PathTransition 作为绘图笔的动画

    示例代码 node Rectangle rect new Rectangle 0 0 20 20 path Text text TextBuilder create text J a v a F X R o c k s font new F
  • 在 fxml 中使用自定义控件

    假设我已经对默认值进行了子类化TableView
  • JavaFX 控制器如何访问其他服务?

    我将 JavaFX 2 与 Scala 一起使用 我有class Application extends javafx application Application它执行诸如读取应用程序配置等操作 然后它会启动主窗口 该主窗口需要连接到一
  • JavaFX LineChart:在图表中间插入新数据

    我正在使用带有 JavaFX 的折线图 LineChart

随机推荐

  • 检查 Firebase 数据库中是否存在特定值

    我正在制作一个 Android 应用程序Firebase实时数据库 当新用户在我的应用程序上注册时 该用户的数据将保存在 Firebase 数据库中 用户必须提供以下详细信息才能注册 全名 Email Username Password 数
  • 用于基于节点的对象和对象关系的Javascript库?

    我正在寻找一个 Javascript 最好是开源 库来显示基于节点的对象和对象关系 非常基本的东西 显示一个节点 可以是一个简单的框 及其属性 属性可以有值 有时 该值可以是与另一个节点的关系 这会在两个节点之间创建一条线 像这样的东西 h
  • 如何在没有ID的情况下访问HTML元素?

    例如 在下面的代码片段中 如何在知道父元素 header inner div 的 ID 的情况下访问 h1 元素 div div class titlewrapper h1 class title Some text I want to c
  • 如何在 Angular 2 中跟踪路由?

    我有带有单独的路由设置文件的组件 import NgModule from angular core import Routes RouterModule from angular router import Route from core
  • 无法在 php 中获得正确的输出模式

    我正在尝试在 php 中获取此模式 我已经尝试过 但我无法产生输出 因为我的输出如下 run project l php 5 0 01 012 0123 01234 然而 代码是
  • 汇编代码可以跨平台吗?

    0x042444FF inc dword ptr esp 4 0x042444FF是机器码 而inc dword ptr esp 4 是汇编代码 我知道 机器代码不是跨平台的 因为它取决于许多因素 汇编代码呢 它取决于CPU吗 汇编代码不是
  • Silverlight DataGrid如何从所选项目中获取单元格值?

    我正在尝试从 silverlight 数据网格的选定项目中获取单元格值 在附加的代码中 我可以获取单元格的属性并更改其前景色 但我无法获取单元格的值 有人可以让我知道我做错了什么吗 非常感谢您的帮助 private void FindDet
  • 如何在AVAudioPlayer中按顺序循环播放多个音频文件?

    我想通过循环播放多个文件 我在下面写了代码 请帮我 soundList NSArray alloc initWithObjects mySong1 mp3 mySong2 mp3 mySong3 mp3 mySong4 mp3 mySong
  • 在 Sublime Text 2 中将一行单词更改为垂直列表的快捷方式

    Is it possible to make this title on line 1 a list of items from each word or symbol seperated by a space with a keyboar
  • C# 相当于 file_get_contents (PHP)

    作为后续 OAuthException 15 您调用的方法必须使用应用程序秘密签名会话来调用我想知道 file get contents 的等效项是什么 我尝试了以下但我得到了illegal characters in path error
  • AllocConsole() 不显示 cout

    我有一个 DLL 我在其中使用 AllocConsole 和 cout 显示数据以进行调试 它曾经工作正常 但自从我将编译器 Visual Studio 2012 更新到最新版本后 dll 只显示控制台 但不显示打印 输出 我不知道为什么会
  • 拒绝二进制文件,状态等待审核(找不到拒绝二进制文件按钮)

    我想拒绝正在等待审核的二进制文件 当我转到该路径时开发者指南指定我找不到拒绝二进制文件的按钮 在 iTunes 连接中 从 我的应用程序 select 单击您的应用程序 然后 确保您在 版本 选项卡 并选择正确的版本 Click 从审核中删
  • 在基于打字稿的设置上运行续集播种机时出错

    我想在我的express api上使用sequelize播种机和迁移 目前所有模型都是使用打字稿编写的续集打字稿 我尝试使用打字稿添加我的第一个种子文件 但运行时出现错误 20221028050116 feeds ts播种文件 use st
  • xsd:choice 的 minOccurs 和 maxOccurs 的含义?

    有什么区别
  • Python 3 中具有列表理解的多行用户输入

    这里完全是 Python 新手 我正在使用 Python 3 解决 CodeAbbey 的问题 我希望得到帮助来缩短用户输入的代码 假设我想从用户那里获取以下输入 3 2 3 4 5 6 7 第一行是案例数 接下来的每一行都是案例本身 有
  • 如何在条形图中显示每个条形的条形值?

    需要查看条形图中的条代表的精确值 而不是 Y 轴上的近似值 这怎么可能做到呢 谢谢阅读 在 iReport 3 7 6 中 您只需选中 BarPlot 属性下的 显示标签 框即可 在之前的版本 3 1 4 中 我必须创建一个 ChartCu
  • Python - 英语翻译器

    用 Python 编写程序将英语单词和 或短语翻译成其他语言的最佳方法是什么 AJAX Language API 这是一个非常困难的问题 语言非常非常very复杂的 想想你必须做的所有事情 解析这个短语 弄清楚这些词的意思 然后翻译它们 这
  • 如何禁用 NSURLConnection 中的 keepalive?

    有什么办法可以强制NSURL连接不重复使用当前的持久连接但要创建一个新的 我正在努力保护自己免受这个已知的影响iOS8 保活错误 如果 iOS 8 收到带有 Keep Alive 标头的 HTTP 响应 它会保留此标头 连接稍后重用 应该如
  • 查找包含带有标签的子任务的家长问题

    我有一个 JIRA 项目 我的一些任务包含标签为 needDesign 的子任务 是否可以找到包含具有该标签的子任务的所有父任务 我使用ondemand jira版本 Jira JQL 并非不提供开箱即用的功能 但是有许多扩展 JQL 的附
  • javafx平台runlater返回结果

    我正在开发 JavaFX 应用程序 在我的场景中是显示在 JavaFX 中创建的密码提示 该提示需要带有两个选项的密码OK and Cancel 我已返回用户输入的密码 我的显示密码对话框的类别是 public static String