【问题标题】:Change the application name at runtime on Mac for a JavaFX-based App在 Mac 上为基于 JavaFX 的应用程序在运行时更改应用程序名称
【发布时间】:2013-09-22 08:42:57
【问题描述】:

请看这张图片:http://i.imgur.com/pHIg1AA.png 是否可以在应用程序启动后在运行时更改 Mac OS X 系统菜单栏中的应用程序名称(“我的基于 JavaFX 的 Mac 应用程序”)? 如果在运行时无法更改,有没有办法在应用重启后更改它? 我认为这个名字来自 Info.plist。 该应用是使用适用于 Mac OS X 的 JavaFX ant 任务构建的。

谢谢。

【问题讨论】:

  • 你是如何让它显示我的基于 JavaFX 的 Mac 应用的?我无法找到如何从默认值 Java 更改它。
  • 当我从 IDE (Eclipse) 中运行应用程序时,我也只看到“Java”。为了让它显示一个自定义名称,我使用 JavaFX Ant Task 来构建一个 Mac 应用程序包。在 Ant 构建脚本的 标记中,我将 name 属性设置为“My JavaFX-based Mac App”。 docs.oracle.com/javafx/2/deployment/… 有更多关于创建 app bundle 的信息。
  • 太好了,谢谢你的帮助。

标签: macos javafx-2


【解决方案1】:

这应该对我有用:D

primaryStage.setTitle("LOLOLOLOL");

这会更改您窗口的名称。 如果您有 Stage 元素可供使用,您可以随时更改此值。

【讨论】:

    【解决方案2】:

    当使用javafx-maven-plugin 时,您可以像这样在 pom.xml 中指定它:

    <plugin>
      <groupId>com.zenjava</groupId>
      <artifactId>javafx-maven-plugin</artifactId>
      <version>8.6.0</version>
      <configuration>
        <appName>Aaa Working Title</appName>
        ...
      </configuration>
      ...
    </plugin>
    

    【讨论】:

      【解决方案3】:

      我知道实现您想要的两种方法:

      1) 在创建任何阶段之前从主线程调用javafx.awt.Desktop.getDesktop

      object MYAPP
      {
        def main(args: Array[String]) =
        {
          val d = java.awt.Desktop.getDesktop
      
          // ...optionally, add handlers for interesting desktop events
      
          javafx.application.Application.launch(classOf[MyApp], args: _*)
        }
      }
      

      我相信,除其他外,这会将应用程序菜单重命名为 MYAPP。

      2) 使用javapackager 工具打包您的应用程序。

      【讨论】:

        【解决方案4】:

        实际上,您可以使用 java-command args 轻松更改它
        -Xdock:name=SomeName

        这对我来说很好,在 Java11 定制运行时上启动 JavaFX 应用程序,并将 bash 脚本作为本机应用程序。

        来自 Oracles Java 10 文档:

        -Xdock:name=应用程序名称
        覆盖显示在停靠栏中的默认应用程序名称。 [*]

        -Xdock:icon=图标文件路径
        覆盖停靠栏中显示的默认图标。

        [*] 也会影响菜单名称。

        您可以通过在此处查找“src_macos/tmpl/George.sh”来查看我的完整命令:https://bitbucket.org/andante-george/george-application/src

        对于 About 对话框,只需执行以下操作: java.awt.Desktop.getDesktop().setAboutHandler(my_about_handler)。 在您的处理程序中打开您想要的任何类型的对话框或窗口。

        【讨论】:

        • IIRC,我需要一种方法在应用启动后在运行时更改它。
        猜你喜欢
        • 2013-09-21
        • 2015-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 2012-06-11
        相关资源
        最近更新 更多