Java桌面应用程序:SWT与Swing
我现在是一名web开发人员,正在考虑构建我的第一个真正的桌面应用程序。其想法是构建一个工具,在没有API的web应用程序中自动执行非常重复的任务 我知道我想使用Java。我以前在web应用程序中使用过它,非常熟悉语法,希望应用程序能够尽可能简单地跨平台 我不确定的是我应该使用SWT还是Swing。由于我的主要受众使用Windows,我希望在那里尽可能让它看起来像本地人一样。Linux和Mac应该可以工作,但外观在这里并不重要 那么,支持和反对每个UI框架(Swing或SWT)的理由是什么 谢谢Java桌面应用程序:SWT与Swing,java,swing,swt,Java,Swing,Swt,我现在是一名web开发人员,正在考虑构建我的第一个真正的桌面应用程序。其想法是构建一个工具,在没有API的web应用程序中自动执行非常重复的任务 我知道我想使用Java。我以前在web应用程序中使用过它,非常熟悉语法,希望应用程序能够尽可能简单地跨平台 我不确定的是我应该使用SWT还是Swing。由于我的主要受众使用Windows,我希望在那里尽可能让它看起来像本地人一样。Linux和Mac应该可以工作,但外观在这里并不重要 那么,支持和反对每个UI框架(Swing或SWT)的理由是什么 谢谢
PS:我使用Eclipse在Windows上开发。但是我正在考虑使用Netbeans。对于您的需求来说,似乎底线是使用Swing,因为它开始使用起来稍微容易一些,并且不像SWT那样与本机平台紧密集成
挥杆通常是一种安全的赌注。有趣的问题。我不太了解SWT,所以不能吹嘘它(不像Swing和AWT),但这里是对SWT/Swing/AWT的比较 这是一个网站,你可以在这里获得关于SWT的任何基本教程()
希望您做出正确的决定(如果在编码方面有正确的决定)…:-) 我会选择swing,因为它是java的“本机”
另外,请看一看。职业挥杆:
- 作为java库的一部分,不需要 其他本机库
- 在所有平台上的工作方式相同
- Netbeans和Eclipse中集成的GUI编辑器
- Sun/Oracle提供的优秀在线教程
- 由官方java扩展(如java OpenGL)支持
- 本地的外观和感觉可能会表现出 与真正的本地人不同 系统
- 重型组件(本机/awt)隐藏swing组件,这在大多数情况下都不是问题,因为使用重型组件的情况非常罕见
- 尽可能使用本机元素,因此始终使用本机行为
- 受eclipse支持的gui编辑器VEP(VEP还支持Swing和AWT)
- 网上有大量的例子
- 具有集成awt/swt桥接器,允许使用awt和swing组件
- 每种类型都需要本机库 支撑系统
- 由于本机原因,可能不支持所有系统上的所有行为 使用的资源(提示选项)
- 管理本机资源,而本机组件通常会与其父级一起释放,其他资源(如字体)必须手动释放或注册为组件的dispose listener以自动释放
要考虑的是,一些用户和一些转售商(戴尔)在他们的64位Windows上安装了一个64位的VM,而在32位和64位VM上不能使用相同的SWT库。
这意味着您需要根据用户是使用32位还是64位Java虚拟机来分发和测试不同的包。例如,在Azureus中可以看到,但在Eclipse中也可以看到,从今天起,首页下载页面上的构建并没有在64位VM上运行 如果您计划构建一个功能齐全的应用程序,其中包含多个特性,我建议您直接使用EclipseRCP作为框架 如果您的应用程序不会变得太大,或者您的需求太独特,无法由正常的业务框架处理,那么您可以安全地使用Swing 最后,我建议您尝试这两种技术,以找到更适合您的技术。就像Netbeans vs Eclipse vs IntelliJ一样,这里没有绝对正确的答案,两种框架都有各自的缺点 职业秋千:
- 更多专家
- 更像Java(几乎没有公共字段,不需要在资源上进行处理)
- 更多操作系统本机
- 更快
- 它已经存在了更长的时间,并且 更多的开发工作应用于 信息技术因此,它可能更具特色 完整并且(可能)有更少的bug
- 有很多文档和文档 关于生产的其他指导 性能应用
- 看来 像Swing传播到的更改一样 所有平台同时运行,同时 SWT的更改似乎出现在屏幕上 首先是Windows,然后是Linux
- swing IMHO的最大优点是,您不需要随应用程序一起提供库(这样可以避免十几MB(!)李>
- 与早期相比,swing的本地外观和感觉要好得多
- 性能与swt相当(swing不慢!)
- NetBeans提供了Matisse作为舒适的组件生成器李>
- JavaFX中Swing组件的集成更容易
- 我之所以使用Swing,有几个原因