当前位置: 首页 > 知识库问答 >
问题:

Mac上JavaFX缺少OpenFilesEvent

常博裕
2023-03-14

我有一个JavaFX8桌面应用程序,我正在创建一个.app应用程序包来将应用程序分发到Mac用户。我使用Oracle“自含应用程序打包”工具生成包。

文件关联是在Oracle“自包含应用程序打包”工具的Ant脚本中完成的,如下所示:

xml prettyprint-override"><project name="VocabHunter Packaging" basedir=""
         xmlns:fx="javafx:com.sun.javafx.tools.ant">
    ...
    <fx:info title="VocabHunter">
        <fx:association description="VocabHunter session"
                        extension="wordy"
                        mimetype="application/x-vnd.VocabHunterSession"
                        icon="${basedir}/icons/mac/VocabHunterSession.icns"/>
    </fx:info>
    ...
</project>

在Java代码中,我获得com.apple.eawt.application的一个实例,然后注册OpenFilesEvent的侦听器,如下所示:

Application application = Application.getApplication();
application.setOpenFileHandler(new OsxOpenFilesHandler(listener));

您可以在这里看到完整的代码。

共有1个答案

符修杰
2023-03-14

我用你的代码进行了测试,也遇到了这个问题。但是当我在start(StagePrimaryStage)方法中直接使用代码来监听时,如下所示:

Application lowLevelApp = com.sun.glass.ui.Application.GetApplication();
lowLevelApp.setEventHandler {...}

我可以在第一次双击文件时获得OpenFilesEvent。

 类似资料:
  • 问题内容: 我正在尝试在Mac OS X 10.6.8和Python 2.7.4上使用Python访问共享的C库。为此,我需要在我的C代码中。如果我尝试编译仅包含一个include语句的C脚本,将其称为“sample.c”,我将得到: 由于我正在运行Mac 10.6,因此我拥有Xcode 3.2.6,这是OS X迭代上可用的最新版本,而无需付费升级到10.7并获取Xcode4。是否可以在不升级我的

  • 我想制作一个使用JavaFX GUI的应用程序。我在一篇堆栈溢出文章中读到,这些包应该集成在OpenJDK(JavaFX和OpenJDK)中。因此,我设置了OpenJDK13(jdk13下载页面),但找不到需要导入的包。例如:我找不到类。 它位于哪里?我需要下载其他东西吗? 我在我的问题中特别解释了我所期望的,因为我以前在普通JDK中使用JavaFX。由于OpenJDK不是这种情况,我询问如何正确

  • 我有一个据称不可能解决的问题,所以我花了很长时间才找到答案。 我有最新版本的NetBeans 7.4,运行在完全更新的Fedora 20 x64上。正式来说,这可以与JavaFX一起使用。时期我有来自repo的JDK(1.7.something)和我能找到的最新版本(1.8.0)。官方称,这些都带有JavaFX。时期 如果我尝试创建一个新的JavaFX项目,它会这样说: 失败了 好吧,我习惯了事情

  • 我有一个maven项目,我想导出到runnable中。jar文件。 在VSCode中,项目可以正常工作。导出的项目包括。jar文件和包含所有javaFX文件的libs文件夹: 运行以下命令时出现问题: 我不明白为什么会出现这个错误,因为所有JavaFX文件都位于libs文件夹中并且可见。 我目前使用SDKman的Java Temurin 18.0.1。 <代码>Pom。xml文件: 我尝试下载Ja

  • 我第一次尝试使用JavaFX。我在IntelliJ中创建了一个*.fxml文件的项目。然后,我在IntelliJ中打开了内置的fxml gui编辑器。我得到一个警告,我需要为JavaFX添加一个SDK。我转到了项目结构设置、模块、依赖项,并添加了“IntelliJ dir\jre64\lib\ext\jfxrt.jar”。警告消失了。模块作用域设置为编译。如果我试图通过单击IntelliJ中类声明

  • Maven JavaFx项目编译但从控制台运行时给出“缺少JavaFx应用程序类”错误消息 上面的方法是“创建一个新的主类,并调用扩展应用程序的类的主方法”。 然而,我仍然面临以下问题: 2.java--module-path“c:\program files\java\javafx-sdk-11.0.2\lib”--add-modules=javafx.controls,javafx.fxml,