Mac OS X上的Java Swing GUI
你有没有尝试过只使用Swing来改变课程,因为它根本无法做到你想要的?
我对Swing很新,仅仅在5年前用于学校项目,但似乎Swing在提供更原生的外观和感觉方面已经走了很长的路,所以我正考虑用它来开发Mac OS X上的应用程序的GUI。但在此之前,我想看看是否有人遇到任何阻止他们使用Swing的showstopper问题。
在我的头顶,一些可能性:
- 开发看起来“正确”的自定义组件的问题
- 与本机应用程序和小部件的错误交互
- 性能问题(反应迟钝,重绘问题)
- 无法模仿本机行为(如Dock交互)
Swing不会为您提供托管操作系统的完美保真度。 Sun根本无法投入必要的大量资源来实现这一目标。 我的印象是,Swing已经变得更好了,但是默认情况下仍然看起来不合适。
甚至希望通过Mac应用程序所需的最低要求:
- 将.jar包装在.app中
- 将L&F设置为系统默认值
- 将apple.laf.useScreenMenuBar属性设置为true
- 必须在任何UI代码之前执行此操作
Dock标准Java中不存在Dock交互。 您将不得不使用Apple的Cocoa-Java桥,不再支持它。 我不知道JNI在OS X上是多么易处理,这是唯一真正的替代方案。
性能应该不是问题。 在OS X上拖放可能和其他地方一样多毛。
基本上,如果您明确定位OS X,那么最好使用Objective-C。 使用Java和Swing在OS X上构建应用程序绝对不可能,但是要让它看起来像“原生”,需要做很多工作。
正如凯文和约翰所说,如果你只针对Mac用户,你应该尝试使用Objective-C,Cocoa和XCode。 适用于Mac的开发人员工具可免费使用。
如果您想(或必须)使用Java和Swing,您可以使用一些库来创建在Mac上看起来很好的GUI:
- Quaqua外观和感觉
- MacWidgets
要部署应用程序,您应该阅读JarBundler文档。
但是,在这种情况下,与dock和本机应用程序的交互非常有限。
其他一些好的链接是:
- 使Java / Swing应用程序看起来(更像)与原生Mac OS X应用程序一样
- Java:如何处理drop事件到Mac OS X Dock图标
@凯文++
使用Cocoa可能更好
- 如果您希望它看起来与本机应用程序完全相同
- 如果您只定位Mac
如果您打算分发Windows,Linux等应用程序,Swing是一个不错的选择。 它更好,但在任何工具包中仍然存在问题。 你永远不会得到真正的原生外观和感觉,同样适用于声称是“跨平台”的类似UI工具包。
可以在此处找到Apple Java开发指南。
Swing是一个很好的方式,或者你可以去SWT,或两个!
但无论哪种方式,都可以在RCP平台上使用它们。 (使用Eclipse或Netbeans)。
看看这个: http : //www.adam-bien.com/roller/abien/entry/eclipse_rcp_vs_netbeans_rcp
马尔科
Macify可以提供帮助。