桌面UI设计工具,最好是Java或Java包装器



在完成了网页设计和Android的工作后,我终于开始了桌面软件的工作,直到我真正开始着手桌面UI设计时,我的开发周期出现了重大延迟。迄今为止的经历是痛苦的。我决定使用Java来编写程序,因为这样我就可以为套接字和无线接口使用跨平台的api(我的程序非常依赖这些api,并且可以成功地工作)。

Web和Android UI设计:

HTML/CSS/Javascript;XML/Android API ->提供高灵活性,自定义,快速UI开发周期。

Java桌面UI设计

AWT/Swing/Swing FX ->

  1. 几乎不可能定制,从这里和这里的问题可以看出。当定制成为可能时,实现它会大大增加开发时间,如下所示。它还增加了代码的复杂性,并且在大多数情况下,解决方案是本地的,不适用跨平台(至少Linux、Windows、Mac)。原生的,默认的外观真的不是大多数UI设计师想要的。

  2. 拖放选项很好,改善开发时间。窗口建设者。但是缺少像添加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.

在我看来,最好的方法或工具是:

  1. Qt框架。对于UI来说非常好,但如果有包装器就更好了用于Java和其他语言。它不会减少开发时间,而且会需要手工编码,但可以使界面看起来非常好和
    使用。

  2. WxPython。另一个好工具,如果它有其他的包装会很酷语言。

  3. 一些工具,让设计桌面UI与HTML/CSS/xml类语法和易用性。

  4. 不要再考虑UI工具和

    。不要再抱怨了,使用默认的、现有的工具和原生的的样子。

    b。手工编码所有内容,并为每个平台单独定制。

    c。在Java中使用图形画布并编写UI,就像编写场景一样

如果你不这样认为,或者如果有更好、更容易的选择,请提出建议。

谢谢。

"几乎没有定制的可能"在我看来,短视,你可以在这里寻找有关外观和感觉的信息,如果你有冒险精神,你可以创建自己的。人们在定制Swing时遇到的许多问题,更多的是由于缺乏对API的理解,而不是缺乏灵活性。事实上,我发现Swing是最灵活、最可定制的工具包之一。

你也可以在这里查看如何创建自己的组件

你必须意识到的是,当你越来越接近"快速工具"时,你开始降低灵活性和可定制性,因为这些工具开始将你锁定。

我没有使用WindowBuilder的经验,但是NetBeans表单设计器允许你在项目类路径中包含任何组件,包括任何你已经构建或下载的。

我同意经常对Swing提出的批评之一是它需要多长时间才能启动并运行。这归结为为灵活性和可定制性而设计的API。最终开发人员应该围绕最适合他们需求的API构建库。

大多数人会告诉你要避免使用屏幕构建器,而选择手工编码。就我个人而言,我喜欢屏幕构建器,但我坚持让我的初级开发人员很好地理解布局管理器是如何工作的,并构建像复合布局这样的设计技术。

我认为很多人的问题之一是忘记构建应用程序。虽然我喜欢一个好看的应用程序,但我仍然更喜欢一个真正按照设计目的做的应用程序,并且做得很好,而不是看起来很漂亮。

没有过时

我将从Qt

的角度来讨论

1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.

Qt提供了一个优秀的开发环境:

  1. Qt Creator跨平台IDE
  2. Qt快速设计器
  3. Qt设计器
  4. <
  5. 国际化工具/gh>HTML帮助系统
  6. Visual Studio插件和Eclipse集成
  7. 跨平台构建工具

您可以在给定的链接中阅读有关QtDesigner的信息。它为您提供了一种简单的"所见即所得"(WYSIWYG)类型的界面,并为您生成自动代码。如果你想让你的UI是多语言的,其他模块,如国际化,也很有用。

2. Everything is cross-platform, including customization solutions.

Qt在以下平台上工作:

  1. Windows - Qt for Microsoft Windows XP, Vista, 7.
  2. Windows CE, Mobile - Qt for Windows CE和Windows Mobile.
  3. Symbian - Qt for Symbian平台。
  4. OS X - Qt for Apple OS X;
  5. X11 - Qt for X Window System (GNU/Linux, FreeBSD, HP-UX, Solaris, AIX等)
  6. 嵌入式Linux - Qt嵌入式平台:个人数字助理,智能手机。Maemo, MeeGo - Qt for Maemo,与Moblin合并到MeeGo
  7. Wayland - Qt用于Wayland显示服务器。Qt应用程序可以在加载时使用-platform命令行选项
  8. 在图形化后端(如X和Wayland)之间切换。
外部端口

自从诺基亚在Gitorious上向社区开放Qt源代码以来,各种端口已经出现。以下是其中一些:

  1. Qt for OpenSolaris
  2. Qt for Haiku - Qt for HaikuQt for OS/2 - Qt for OS/2 eCS平台
  3. Qt-iPhone - Qt的实验开发
  4. Qt for webOS - Palm Pre上Qt for webOS的实验性开发
  5. Qt for Amazon Kindle DX - Qt for Amazon Kindle DX的实验开发
  6. 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.

你不会相信这里的列表。它们几乎涵盖了所有的语言,包括Ada、Pascal、Perl、PHP、Ruby、Python和Java。


我给出上述信息的前提是,你打算让桌面应用程序具有"原生"小部件的外观和感觉。我还想再补充一点。

  1. 如果你有足够的灵活性,使UI没有真正的"按钮"等,更像"智能手机UI",不要去任何其他地方,而不是使用Qt-Quick。

  2. 快速,简单,强大,灵活。事实上,他们已经开始在qml中提供对直接桌面小部件的支持。看到这里。

  3. 随着现代桌面快速变化的外观和感觉,未来的趋势似乎是手机和桌面ui在某种程度上合并!

在桌面端几乎没有任何创新发生的情况下,他们似乎正朝着手机世界的新方向发展。看到Windows Metro的UI发生了什么吗?

为了以防万一,你可以在这里阅读如何使Metro的UI像qml!

随着Qt5的到来,事情变得更好了!阅读这篇文章,看看它是如何弥合桌面和手机界面之间的差距的。

注:观点可能有点偏颇,我是Qt的粉丝,也是Java的仇恨者。:-)

最新更新