繁体   English   中英

美化Mac上的SWT应用程序

[英]Beautifying a SWT application on Mac

SWT旨在实现跨平台,因此可以在Mac上运行。 问题是它承认了麦克兰的主要罪行 - 它是UGLY。 工具栏看起来不像Mac工具栏,状态栏看起来不像Mac状态栏等。

有没有人有任何使SWT应用程序看起来更像Mac应用程序的经验? 例如,通过SWT中的“OS”类进行特定于平台的JNI调用? 如果是这样,它有多难?

(出现这个问题是因为我们正在考虑移植一个旨在在Windows上运行的现有SWT应用程序)

谢谢

这通常是Swing而不是SWT的问题(SWT直接链接到OS /框架提供的小部件) - 来自对SWT和JFace 2的 温和介绍

SWT是一个库,用于创建本机主机操作系统GUI控件的Java视图。 它取决于主机实现。 这意味着基于SWT的应用程序具有以下几个关键特征:1。 它们的外观,行为和执行类似于“本机”应用程序。 2. 提供的小部件反映了主机操作系统上提供的小部件(组件和控件)。 3.主机GUI库的任何特殊行为都反映在SWT GUI中。

前3.5里程碑用于使用Carbon框架,现在3.5+支持32 / 64bit Cocoa框架1,所以这可能会让你感到困惑? 或者你可以更具体,给我们你使用的版本和一些截图/示例代码重现?

我已经在OSX上开发了基于SWT / Eclipse RCP的java应用程序一段时间,并且没有找到外观和主要问题(因为它不符合Apple HID 3,因为它符合Eclipse UIG)

我能提供的最好的是使用MacWidgetsQuaqua ,它们都是免费的,并且处于成熟的不同阶段。 坏消息是他们都是基于Swing的,这可能不是你想听到的。

您可以轻松地使应用程序看起来像mac应用程序。 Apple提供了一个名为JarBundler的应用程序,您可以将菜单项放在它们所属的位置,它还可以构建一个双击可执行文件,并且您可以设置一个图标。

Mac OS X上的Swing组件看起来很像它们的cocoa组件,对于OS X,你可以设置一些特殊的标志,使它们就像它们的可可计数器部分一样,例如你可以为JTextField设置一个标志并让它看起来像可可搜索领域。

此外,所有Mac都预装了java,这样可以减少一个问题。

我经常使用奇怪的“平台查询”来调整应用程序。 例如,它不是真正关于打扮应用程序和更多关于(例如)使退出菜单选项在Mac上说“退出”和“在Windows上退出。有一些Mac风格的指导方针我不能像这样但它可能有所帮助。

Patform.java用于开关类和ExitAction.java供其使用的一个例子。

祝你好运:D

我首先为Carbon创建了对Mac OS本机工具栏的支持,然后为可可版本的SWT创建了支持。 当时我设法将eclipse透视切换器转移到本机工具栏。 我没有Obj-C经验,所以Cocoa版本比Carbon版本更多,但是当所有人都被告知时,它并不是很难。 在支持工具栏后,我编写了一些代码来支持Alpha Compositing,原生图像透明度,硬件加速效果(CAAnimation)。 对于这些,更难的部分是理解为什么Eclipse JNI生成器甚至无法生成某些API。 原来苹果提供的python bridge生成器尚未针对Obj-C 2.0 Property语法进行升级。 当我修复它时,我能够让SWT JNI Generator吐出丢失的API。 从那里开始,使用它们很容易。 您可以在eclipse.org bugzilla服务器中找到部分内容。

我不能说它总是很简单,但如果你已经知道Obj-C,那么你应该能够做任何你想做的事情。 几天前,我再次开始研究SWT Cocoa,以增加对ARGB图像的支持(与ImageData提供的有限透明度支持相反)。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM