【问题标题】:Clojure seesaw application: How to change menubar title from "main"Clojure 跷跷板应用程序:如何从“主”更改菜单栏标题
【发布时间】:2023-04-01 00:50:01
【问题描述】:

在我用 clojure 编写的独立应用程序中,使用跷跷板创建 gui,并在 OSX 下运行,我得到一个菜单栏标题“main”。这似乎是基于跷跷板程序的默认设置。我在任何可用的教程示例中都看到了它。这是我的样子:

我尝试重命名 (-main) 函数。上面的图像是使用 (-main) 重命名为 (-soulflyer) 拍摄的,因此它没有从中选择标题。这是代码的sn-p:

(defn -soulflyer [& args]
  (invoke-later
   (let [f                (make-frame)
         details          (select f [:#details])
         image-pane       (select f [:#image])
         keyword-tree     (select f [:#tree])
8<---snip

注意这是从 repl 运行的,独立版本需要有一个 -main 函数。

这是(make-frame)函数的一部分:

(frame
 :title "Keyword Explorer"
 :size [1400 :by 800]
 :menubar
 (menubar :items
          [(menu :text "File" :items [])
           (menu :text "Edit" :items [])])
 :content
8<---snip

所以 :title 值只影响窗口中的标题而不影响菜单栏中的标题。

有没有办法从clojure改变它?

编辑:project.clj 文件可能有用(其余代码位于https://github.com/soulflyer/find-pics):

(defproject find-pics "0.1.0-SNAPSHOT"
  :description "Search for images containing specified keywords"
  :url "http://githube.com/soulflyer/find-pics"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [seesaw "1.4.5"]
                 [image-lib "0.1.0-SNAPSHOT"]
                 [com.novemberain/monger "3.0.1"]
                 [org.clojure/tools.cli "0.3.3"]]
  :main find-pics.core
  :bin {:name "find-pics"
    :bin-path "~/bin"})

【问题讨论】:

    标签: macos clojure seesaw


    【解决方案1】:

    简短的回答是您应该在project.clj 文件中添加:jvm-opts ["-Xdock:name=YOUR_APP_NAME"]

    Mac OS X 中的 Java 应用程序有一个应用程序菜单。默认情况下,此应用程序菜单包含主类的全名作为标题。如果你想改变这个,你可以像这样传递-Xdock:name VM 参数。

    java -Xdock:name=YOUR_APP_NAME ...
    

    看来clojure 函数编译成Java 类。这就是为什么应用程序菜单显示为main,与main 函数名称相同。由于无法更改函数名称,因此应将-Xdock:name=YOUR_APP_NAME 添加到:jvm-opts

    更多详情,您可以阅读以下文档:

    OS X Integration for Java

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多