Mac OS X上的Java Swing GUI

Mac OS X上的Java Swing GUI,java,user-interface,swing,macos,Java,User Interface,Swing,Macos,您是否曾经尝试过使用Swing,结果只是因为它无法完成您想要的任务而改变课程 我对Swing非常陌生,5年前才在学校项目中使用过它,但Swing在提供更自然的外观和感觉方面似乎已经取得了长足的进步,以至于我正在考虑使用它为Mac OS X上的应用程序开发GUI。不过,在此之前,我想看看是否有人遇到了任何阻碍他们使用Swing的showstopper问题 就在我脑海中,一些可能性: 开发看起来“正确”的自定义组件时出现问题 与本机应用程序和小部件的不良交互 性能问题(无响应、重新喷漆问题) 无法

您是否曾经尝试过使用Swing,结果只是因为它无法完成您想要的任务而改变课程

我对Swing非常陌生,5年前才在学校项目中使用过它,但Swing在提供更自然的外观和感觉方面似乎已经取得了长足的进步,以至于我正在考虑使用它为Mac OS X上的应用程序开发GUI。不过,在此之前,我想看看是否有人遇到了任何阻碍他们使用Swing的showstopper问题

就在我脑海中,一些可能性:

  • 开发看起来“正确”的自定义组件时出现问题
  • 与本机应用程序和小部件的不良交互
  • 性能问题(无响应、重新喷漆问题)
  • 无法模仿本机行为(如Dock交互)

    • Swing是一种不错的方式,或者你可以选择SWT,或者两者都可以

      但无论如何,都要在RCP平台上使用它们。(使用Eclipse或Netbeans)

      看看这个:


      marco

      Swing不会给您提供托管操作系统的完美保真度。Sun根本无法投入大量必要的资源来实现这一目标。我的印象是Swing已经好了很多,但在默认情况下仍然看起来不合适

      希望通过Mac应用程序的最低要求:

      • 将.jar打包到.app中
      • 将L&F设置为系统默认值
      • 将apple.laf.useScreenMenuBar属性设置为true
        • 必须在任何UI代码之前执行此操作
      标准Java中不存在Dock交互。您将不得不使用苹果的Cocoa Java桥,它不再受支持。我不知道JNI在OSX上有多容易驾驭,这是唯一真正的选择

      性能应该不是问题。拖放操作在OSX上可能和在其他地方一样麻烦

      基本上,如果你明确地以OS X为目标,最好使用Objective-C。使用Java和Swing在OS X上构建应用程序绝非不可能,但要让它看起来“原生”,需要做很多工作。

      @Kevin++

      使用可可可能更好

      • 如果您希望它看起来与本机应用程序完全相同
      • 如果你只针对Mac电脑
      如果您打算为Windows、Linux等分发应用程序,Swing是一个不错的选择。它更好,但像任何工具箱一样,仍然存在问题。你永远不会得到一个真正的本地外观和感觉,同样适用于声称是“跨平台”的类似UI工具包


      苹果的Java开发指南可以找到。

      正如Kevin和John所说,如果你只针对Mac用户,你应该尝试Objective-C、Cocoa和XCode。Mac电脑的版本是免费提供的

      如果您想(或必须)使用Java和Swing,您可以使用一些库来创建一个在Mac上运行良好的GUI:

      要部署应用程序,您应该阅读文档

      但是,在这种情况下,与dock和本机应用程序的交互非常有限

      其他一些好的链接包括:


      谢谢你的建议。我在Mac上尝试Java的最初动机是能够获得一些使用Clojure的实际经验,这似乎是一种有趣的语言。我已经决定在这个GUI中使用Objective-C,也许可以解决Clojure的一些非图形化问题。@alanlcode:我不会称这些showtopper为showtopper,但如果您想支持OS X 10.4、5、6和32位Mac,而这些Mac没有Java 6,并且需要像可排序JTable这样好看的东西,这需要大量的工作。还有内存占用问题和速度问题,GC在OS X上似乎比在其他平台上花费的时间更长,等等。我考虑过切换,但Windows、OS X和Linux的源代码相同就足以继续使用Swing/Java:),我曾考虑过做更多的Obj-C,但如果使用XCode或IntelliJ IDEA中的其他任何东西,那就好像回到石器时代一样!