桌面 UI 设计工具,最好是 Java 或 Java 包装器
Posted
技术标签:
【中文标题】桌面 UI 设计工具,最好是 Java 或 Java 包装器【英文标题】:Desktop UI design tools, preferably Java or Java wrappers 【发布时间】:2013-01-19 20:45:20 【问题描述】:在从事过网页设计和 android 工作之后,我终于开始了桌面软件的工作,直到我真正开始桌面版 UI 设计时,我的开发周期出现了重大延迟。到目前为止的经历是痛苦的。我决定使用 Java 来编写程序,因为这样我就可以使用跨平台 API 来实现套接字和无线接口(我的程序非常依赖这些 API,并且可以成功运行)。
Web 和 Android 用户界面设计:
html/CSS/javascript ; XML/Android API --> 提供高度的灵活性、可定制性、快速的 UI 开发周期。
Java 桌面 UI 设计
AWT/Swing/Swing FX -->
几乎无法自定义,从问题here 和here 可以看出。当可以定制时,实施它会大大增加开发时间,如here 所示。它还增加了代码的复杂性,并且在大多数情况下,该解决方案是本机的,并且不适用于跨平台(至少 Linux、Windows、Mac)。原生的默认外观确实不是大多数 UI 设计师想要的。
拖放选项很好,例如缩短开发时间。 Window Builder。但是缺少像添加 ImageView 这样的选项。而且,如果需要第 2 点中提到的自定义,则必须对自动生成的代码进行大量修改,完全否定拖放的使用。
谁能给我推荐一个非常好的或接近好的 UI 工具,或者说 UI 引擎(如果存在的话),它具有以下功能:
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
2. Everything is cross-platform, including customization solutions.
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
我认为最好的方法或工具:
Qt Framework。非常适合 UI,但如果它有包装器就更好了 适用于 Java 和其他语言。它不会减少开发时间,并且会 需要手动编码,但可以使界面看起来非常好,并且 可用。
WxPython 。另一个好工具,如果它有其他的包装器会很酷 语言。
一些工具,可以使用类似 HTML/CSS/XML 的语法和 易于使用。
不要再考虑 UI 工具了
一个。停止抱怨并使用默认值和现有工具和本机 看起来。
b.手动编写所有代码,并为每个平台单独定制。
c。使用 Java 和编程 UI 绘制图形画布,就像编写场景一样 在游戏中。
如果您不这么认为,或者是否有更好、更简单的选择,请提出建议。
谢谢。
【问题讨论】:
Qt Framework . Very good for UI, but it'd really be good if it has wrappers for Java and other languages.
那么,这个怎么样:qt-jambi.org
@Amit Tomar:很好的链接,谢谢!
【参考方案1】:
“几乎不可能定制”在我看来是短视的,您可以查看here 以获取有关外观和感觉的信息,如果您喜欢冒险,您可以创建自己的。人们在定制 Swing 时遇到的许多问题更多地归结为缺乏理解,然后是 API 的不灵活,事实上,我发现 Swing 是最灵活和可定制的工具包之一 - 恕我直言。
您也可以查看here 了解如何制作自己的组件
您必须意识到,随着您越来越接近“快速工具”,您会开始降低灵活性和可定制性,因为这些工具会开始锁定您。
我没有使用 WindowBuilder 的经验,但 NetBeans 表单设计器允许您包含项目类路径中的任何组件,包括您构建或下载的任何组件。
我同意 Swing 经常受到的批评之一是它需要多长时间才能启动和运行。这归结为为灵活性和可定制性而设计的 API。最终开发人员可以围绕最适合其需求的 API 构建库。
大多数人会告诉您避免使用屏幕构建器来支持手动编码。就个人而言,我喜欢屏幕构建器,但我坚持让我的初级开发人员很好地了解布局管理器的工作原理并构建复合布局等设计技术。
我认为很多人的问题之一是忘记构建应用程序。虽然我喜欢一个好看的应用程序,但我仍然更喜欢一个真正做到了它的设计目的并且做得很好的应用程序,而不是看起来很漂亮。
恕我直言
【讨论】:
@MadProgrammer,感谢您的意见。我同意功能比外观更重要。在完成并验证了软件的核心功能后,我开始了 UI 设计。对于小型软件,很难相信 UI 设计实际上比开发功能需要更多的时间。我检查了 LNF,尽管可能,使用 Swing 进行自定义会增加开发时间,而且解决方案并不总是跨平台的。 如果您查看如何制作圆角 JFrames(有问题的链接),您会意识到 Java 6 提供的解决方案并不优雅,实际上是使用半透明提供的解决方法,这极大地增加了代码的复杂性,并且不能保证一直工作。 因此,需要 Java 7。这与说您想使用 .Net 4 中的功能但您想使用 .Net 2 相同。如果您有特定的功能要求,则要求用户使用您需要的 API 版本。作为旁注,我们在应用程序中使用透明窗口,并在 Windows 和 Mac 上使用 Java 6 就好了。我不知道你为什么对不得不做一些工作感到不安。 如果你想要什么,那么你就必须为之努力。没有任何 API 能够满足每个人的需求,而 Swing 是最灵活的(恕我直言)之一,因为它没有为基本而道歉,但是您知道有多少 API 提供(如果有限)支持 HTML框,用于大部分文本渲染!【参考方案2】:我会从 Qt 的角度来谈
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
Qt 提供了极好的开发环境:
-
Qt Creator 跨平台 IDE
Qt 快速设计器
Qt Designer
国际化工具
HTML 帮助系统
Visual Studio 插件和 Eclipse 集成
跨平台构建工具
您可以在给定的链接中阅读有关 QtDesigner 的信息。它为您提供了一个简单的所见即所得 (WYSIWYG) 类型的界面并为您生成自动代码。如果您希望您的 UI 是多语言的,其他模块(如国际化)也很适合使用。
2. Everything is cross-platform, including customization solutions.
Qt 适用于以下平台:
-
Windows – 适用于 Microsoft Windows XP、Vista、7 的 Qt。
Windows CE、Mobile – 适用于 Windows CE 和 Windows Mobile 的 Qt。
Symbian – 用于 Symbian 平台的 Qt。
OS X – 苹果 OS X 的 Qt;支持 Cocoa 上的应用程序。
X11 – 适用于 X Window 系统的 Qt(GNU/Linux、FreeBSD、HP-UX、Solaris、AIX 等)。
嵌入式 Linux – 用于嵌入式平台的 Qt:个人数字助理、智能手机。
Maemo,MeeGo – Qt for Maemo,与 Moblin 合并到 MeeGo
Wayland – 用于 Wayland 显示服务器的 Qt。 Qt 应用程序可以在加载时使用 -platform 命令行选项在 X 和 Wayland 等图形后端之间切换
外部端口
自从诺基亚在 Gitorious 上向社区开放 Qt 源代码以来,各种端口已经出现。以下是其中一些:
-
Qt for OpenSolaris – Qt for OpenSolaris
Qt 俳句 – Qt 俳句
Qt for OS/2 – Qt for OS/2 eCS 平台
Qt-iPhone – Qt for iPhone 的实验开发
Qt for webOS – 在 Palm Pre 上的 Qt for webOS 实验性开发
Qt for Amazon Kindle DX – Qt for Amazon Kindle DX 的实验性开发
Necessitas – Android 版 Qt
Qt for BlackBerry – Qt for BlackBerry
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
上面讨论过。
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
你不会相信列表here。它们几乎涵盖了所有内容,包括 Ada、Pascal、Perl、php、Ruby、Python 和 Java。
我已经提供了上述信息,假设您计划使用“本机”小部件的外观和感觉制作桌面应用程序。我想添加一些东西,更多。
如果你有足够的灵活性来制作没有“按钮”等的 UI,而更像是“智能手机 UI”,那么除了使用 Qt-Quick 之外别无他法。
快速、简单、强大、灵活。事实上,他们已经开始在 qml 本身中为直接桌面小部件提供一些支持。见here。
随着现代台式机外观和感觉的快速变化,未来趋势似乎是电话和台式机 UI 在某个时候合并!
在桌面端几乎没有任何创新,他们似乎正朝着手机世界的任何新事物前进。 那么,看看 Windows Metro 类型的 UI 中发生了什么?
以防万一,您可以阅读here 如何让 Metro 像 UI 一样是 qml!。
随着 Qt5 的到来,事情变得更好了!阅读this,了解它如何弥合桌面和手机 UI 之间的差距。
附注观点可能有点偏颇,我太喜欢 Qt 和讨厌 Java,两者都是。 :- )
【讨论】:
以上是关于桌面 UI 设计工具,最好是 Java 或 Java 包装器的主要内容,如果未能解决你的问题,请参考以下文章