【问题标题】:Which Java GUI framework to start with? [closed]从哪个 Java GUI 框架开始? [关闭]
【发布时间】:2012-04-17 22:51:36
【问题描述】:

我对 Java 还是很陌生。

我有一个用 C# 编写的工具,我想将它移植到 Java。

我使用 Eclipse,并想从 WindowBuilder 开始。

但是,我对各种选项(GWT、SWT、Swing)感到很困惑,而且我搜索的越多,我就越困惑。

我需要一个干净的 GUI,不要过于复杂,我想使用最简单的框架,最好是尽可能类似于 C# 风格的框架。

你有什么可以推荐给我的?

【问题讨论】:

    标签: c# java user-interface frameworks windowbuilder


    【解决方案1】:

    我应该说(这三个框架中最简单的)(即文档最完整和最古老的)显然是 Swing。

    查看Oracle Swing tutorials

    在使用 Swing 时要记住一些事情(例如,据说它“不是线程安全的”,但请参阅 this thread 示例),但通常我会推荐它作为 GUI 开发的起点在 Java 中。

    SWT (Standard Widget Toolkit) 最初是为 Eclipse 开发的,GWT (Google Web Toolkit) 用于 Web 应用程序。

    【讨论】:

    • “它不是线程安全的” 这很容易被“修复”(用引号括起来,因为我一开始不认为它坏了)。我看过其他(本机)应用程序。在 Windows 上,忙碌时会遭受完全相同的“GUI 冻结”。尝试将驱动器设置为在不活动时关闭电源,在许多应用程序中加载文档时会变得非常明显。随操作系统提供(或由同一公司提供)。
    • @AndrewThompson:当然,Swing 既不是“损坏”的,也不是线程安全问题无法“修复”的问题(d'accord 是单引号)。我只是想提一下,因为任何 Swing 的新用户都可能遇到这种情况,因此可能会担心他/她赌错了马匹。将编辑答案,以减少威胁的方式反映这一点。
    • 不错的编辑(和明显的警告)... :)
    • Java UI “锁定”的唯一原因是因为许多开发人员懒惰或错误地忽略了使用工作线程来执行长时间运行的任务。停止在事件调度线程中做愚蠢的事情,你不会有问题。
    【解决方案2】:

    试试 Java Qt,它与 C++ 的结合非常棒

    【讨论】:

    【解决方案3】:

    我觉得swing很简单,所以我会从swing开始

    【讨论】:

      【解决方案4】:

      如果您来自 C#,最好的开始方法是安装 Netbeans IDE。它具有用于创建新表单的各种向导,并且您拥有一个看起来就像 Visual Studio 中的那样的高质量可视化编辑器

      之后,您可以编辑“隐​​藏代码”以用于以编程方式操作组件。 我想 Eclipse 也可以,但在我看来,Netbeans 非常稳定,并且默认情况下一切正常,配置或插件安装不会浪费时间......

      此外,如果您需要一个复杂的停靠窗口框架,它也集成在 Netbeans 中,并且您有一个构建“富客户端平台应用程序”的向导:

      就像在 Eclipse RCP 中一样,它依赖于 Netbeans 平台 内核,并移除了 IDE 插件。它具有有趣的功能,例如生成跨平台安装程序和在您的应用程序中添加插件...

      祝你好运,

      雷诺

      【讨论】:

        【解决方案5】:

        我已经非常广泛地使用了 Swing 和 GWT。正如其他人所提到的,Swing 是独立 Java 应用程序的不错选择。我无法就 Swing 与 SWT 发表意见,因为我从未使用过 SWT。但是现在有多少应用程序是独立的?不是很多。

        如果您希望从浏览器访问您的应用程序,您可能希望使用基于 javascript 的 UI。有许多基于 javascript 的 UI 框架,例如YUI、Dojo、Prototype、JQuery 等。使用哪个?如果你喜欢用 Javascript 编程(不是一门简单的语言,顺便说一句),你可能想要使用这些框架中的一个或多个。但是,如果您是 Java 新手并且不了解 javascript,那么 GWT 可能是非常好的选择,因为它通常无需了解 javascript(您使用 Java 编写所有代码,编译器会为您生成高度优化的 javascript,并且几乎总是消除浏览器之间的所有差异——这很重要)。我已经使用 GWT 一年多了,我强烈推荐它。它可以与 Google 应用引擎或任何其他服务器端技术一起使用。我会问的一个问题是 GWT 是否可以有效地用于独立应用程序。我想有办法做到这一点,但我还没有研究过。如果是这样,我也倾向于将 GWT 用于独立应用程序,因为如果该独立应用程序最终成为支持 Web 的,那么您的代码可以重用于基于 Web 的界面。

        【讨论】:

          猜你喜欢
          • 2010-09-21
          • 2010-09-07
          • 2010-09-10
          • 1970-01-01
          • 2017-10-11
          • 2013-06-15
          • 2015-06-15
          • 2011-04-17
          • 1970-01-01
          相关资源
          最近更新 更多