【问题标题】:Keeping GUI Development skills sharp保持 GUI 开发技能的敏锐
【发布时间】:2010-06-24 04:05:23
【问题描述】:

我已经用 Java Swing 开发了一段时间,我开始觉得基于 Swing 的桌面应用程序有点陈旧并且开发起来很乏味。

我看到了看起来非常时尚和现代的新应用程序,例如TweetDeckSynthesia(钢琴游戏)。尽管 Haase & Guy 的“Filthy Rich Clients”中有智慧,但我认为在 Swing 中编写这样的应用程序会很麻烦。

假设桌面应用程序不会在未来 5 年内完全消失(或者网络和桌面之间的划分将变得无缝),前端开发人员应该探索哪些 UI 语言和技术来保持当前?下一件大事是什么?

【问题讨论】:

  • 真正酷的界面通常只是天才编码人员的成果。例如,Synthesia 只是用 OpenGL 和 C 编写的。与许多其他 GUI 框架相比,我发现 Swing 非常 RAD。
  • @disown +1 用 Swing 做一个漂亮的设计是很可能的,使用自定义 Synth 派生作为默认 laf 的设计更好(如果只有所有 Synth 类都是公共的而不是友好的,那将是更容易......咳咳)。需要工作,当然,但那不呢?

标签: java user-interface swing


【解决方案1】:

Microsoft's WPF 可能是目前最新、最酷的技术之一。

它允许您制作更好看的 GUI。

您还应该研究一些Microsoft's Expression 产品。它们让您可以将额外的闪光添加到您的 GUI 中。

【讨论】:

  • 我同意 WPF。以前用任何语言构建桌面应用程序都是一件苦差事,但我只是对现在它的简单程度感到震惊,尤其是使用 Visual Studio 2010。
【解决方案2】:

我不确定桌面 UI 开发是否有“下一件大事”。如果有的话,“下一件大事”是基于多点触控的界面,如流行的平板电脑和智能手机。鉴于此,我认为通过下载支持多点触控的手机或平板电脑的 sdk 来学习如何创建多点触控 UI 可能是明智之举。

【讨论】:

    【解决方案3】:

    如果您喜欢 Swing,请查看 Google GWT
    这就像 Swing for Web,差不多。

    【讨论】:

      【解决方案4】:

      始终需要 OpenGL/Direct3D 开发人员,但这可能比您所说的要低。

      在 Windows 端 WPFWindows Forms 可用。

      在 Mac/iOS 上,Cocoa 是最好的选择。

      在 Linux 上,有几个选项,例如 GTKQT

      不过,您可能只想硬着头皮学习一些 HTML5/JavaScript。我怀疑这种情况会很快消失。

      【讨论】:

      • “总是”是一个真的很长的时间!我记得人们在打孔卡时代这样说,关于我们现在嘲笑的事情。作为一名为 OpenGL 贡献一份力量的程序员,我真的希望 10 年内仍然有几乎零个 OpenGL 程序员。有了浏览器中可用的 3d 加速、更快的 Javascript JIT 引擎以及比现在快几个数量级的新硬件,还有什么理由编写 OpenGL?就像 2020 年代的汇编语言一样。
      • @Ken:也总是需要汇编开发人员。类比无效:-)。
      • Mark:当然可以,但只是其中的一小部分,而且只针对非常具体的任务。我不明白它是如何使类比无效的。
      【解决方案5】:

      我建议研究一下 Flex。它的开发比 Swing 和 b/c 有趣得多,它是可以在浏览器或桌面上运行的 Flash。

      【讨论】:

      • 由于关于 Adob​​e 平台的所有争议,我会在新项目中避免使用它。
      • Swing 也可以在小程序或桌面上运行,前提是您安装了正确的插件/运行时(即 Flex 这样做的条件相同)。
      【解决方案6】:

      Java 仍然可以正常工作。您只需将标准控件替换为图像并使用图像状态来更改鼠标悬停和单击时的外观。

      【讨论】:

        【解决方案7】:

        我还建议将 WPF 作为另一个 UI 框架,因为它确实为桌面应用程序提供了一些非常强大的 UI(而且 WPF 中的大部分内容都可以转换为用于 web 应用程序的 Silverlight)。

        另一方面,与其寻找下一个新的 UI 语言或技术,我认为您可能会更好地从可用性的角度来看待 UI,并跟踪当前引起轰动的趋势。

        例如,我在 UI 开发(主要是在网络上)中看到的范式转变之一是切换到使重要的事情变得更大而不太重要的事情变得更小 - 包括对话框中的是/否按钮。我仍在接受这个想法,因为它与一致的按钮外观相悖,向用户展示他们的选择。

        在当今我们不断做出决定的世界中,这种新的 UI 外观的目标不是提供选项,而是为快乐的道路提供面包屑。如果用户决定他们想要做一些不同的事情,他们可以,但 UI 会让用户付出一点努力并阅读细则。

        另一个例子是在访问网站时快速突出显示一个人最近所做的更改(这样做,但我忘记了用来描述这种效果的术语)。

        最后,这是我的最爱之一,从管理/用户视图(也主要是在 webapp 领域)转变为特设的所见即所得编辑器...Flickr 就是一个很好的例子,您可以在其中可以通过单击当前标题并内联编辑来更改图片上的标题,而无需转到单独的管理视图来编辑这些值。

        还有其他人看到像这样有趣且新的趋势吗?

        【讨论】:

          【解决方案8】:

          您已经使用 Swing 编程了一段时间,但您才刚刚开始觉得它看起来过时了? :)

          Swing 看起来像垃圾,不管人们为它做了什么外观和感觉技巧。它实际上使像我们这样的基于 Swing 的桌面应用程序的供应商处于不利地位,因为 WPF 的东西看起来多么闪亮漂亮。

          如果您想留在 Java 领域,我鼓励您尝试 SWT 和 JFace。您不需要 Eclipse。但它是一个更好看的系统,具有更好的 API。

          如果您想追求魅力,WPF 是您的朋友。您仅限于 Windows 并且不能使用 Java(对我来说这两个都很棒),但您不能忽视该 SDK 的美学优势,因为它与最新版本的 Windows 紧密绑定。

          【讨论】:

            【解决方案9】:

            我认为你提到的这本书的重点,以及这里的大部分答案,是大多数语言为你提供了工具,(或足够的绳索让你自己上吊;)扔掉你所使用的任何操作系统的基本丑陋控件打开,并绘制您想要的任何用户体验。是的,在 UI 中对控件进行蒙皮或以其他方式手动接管视觉表示是很乏味的,但如果这对您来说很重要,那么您就会这样做,并且可能会因此而获得回报。或因违反“平台 UI 标准”而受到谴责。

            【讨论】:

              猜你喜欢
              • 2016-11-06
              • 1970-01-01
              • 1970-01-01
              • 2022-12-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多