“怎么做?”;“专业人士”;用java制作GUI?

“怎么做?”;“专业人士”;用java制作GUI?,java,user-interface,Java,User Interface,谢谢你对我的回答。我现在想知道专业人士选择了什么解决方案来获得一个好的GUI,用于“真正的”应用程序。您是否使用swing和JComponents并仅更改“外观和感觉”?你喜欢awt还是其他图书馆 很抱歉,如果这个问题听起来很奇怪,我是一名学生,我不知道java在现实世界中是如何使用的…我相信没有人会再喜欢AWT了。Swing在11年前完全取代了它,在它的基础上改进AWT1.0设计中的缺陷 Swing并不是专业人士制作JavaUI的唯一方式。这适用于台式机,但现在还有JavaFX。对于web,U

谢谢你对我的回答。我现在想知道专业人士选择了什么解决方案来获得一个好的GUI,用于“真正的”应用程序。您是否使用swing和JComponents并仅更改“外观和感觉”?你喜欢awt还是其他图书馆


很抱歉,如果这个问题听起来很奇怪,我是一名学生,我不知道java在现实世界中是如何使用的…

我相信没有人会再喜欢AWT了。Swing在11年前完全取代了它,在它的基础上改进AWT1.0设计中的缺陷


Swing并不是专业人士制作JavaUI的唯一方式。这适用于台式机,但现在还有JavaFX。对于web,UI是使用HTML、CSS、JavaScript和JSP构建的

在我们公司,我们使用Swing,因为JVM开箱即用支持Swing,但我们确实为一些面板和按钮使用颜色编码的背景色

如果我们使用不同的东西,比如SWT,或者我们还必须为所有平台推出这些框架,并为所有OSSE和(支持的)java版本测试这些框架。一点也不好

然而,用Swing创建一个响应良好的应用程序是相当棘手的;所以你真的需要使用SwingWorker之类的工具。不过,只要有一点经验,您就可以通过这种方式创建一个不错的应用程序

即使它不是开发速度最快的框架,但与定义用户界面的功能需求以及发布版本时的测试和支持相比,开发时间确实很短


也就是说,我们的目标是台式机。如果您的目标是移动设备或还需要一个web前端,您的选择可能会有所不同。

我的经验是,大多数希望创建富GUI的组织仍然使用Swing,并手动处理布局管理器的所有烦恼等

SWT的使用仅限于使用EclipseRCP作为平台的组织。我不知道为什么它没有在这个平台之外流行起来


承认这一点很遗憾,但是JavaSwingGUI通常看起来并不好,除非您花费大量时间为它们创造一种更为自然的感觉。即便如此,他们也常常在美学上输给专门为Windows编写的、使用WinForms等Windows API的等效程序。

Macintosh OS X创建了自己的Java运行时。它们为Swing组件提供了与本机应用程序相同的外观

我严格使用秋千。我通过Web Start为Mac和Windows分发“真正的”桌面应用程序,这些应用程序与用户的智能卡读卡器接口


NetBeans IDE为您提供了一种所见即所得的方式来创建表单。我已经尝试过了,它非常简洁,但我们仍然使用Eclipse作为IDE,并用代码设计表单。

我在过去几年看到的最体面的应用是使用Eclipse构建的

Eclipse使用


并且提供了

我们通常使用Swing,因为标准JRE开箱即用支持它。通常我们在Netbeans中进行初始表单设计和事件连接,然后将其导出到我们想要的任何东西,例如Eclipse

Netbeans使用标准库(加上一两个必须包含的jar)推出纯Java,因此在Netbeans中设计表单并随后转向其他方面并没有什么大不了的


有些人建议使用布局管理器手动进行表单布局。我认为这是一个选择,只有当你正在做一些大的、预算很好的、必须无限期保持的事情时。否则,它就太耗时了,不值得这么做。

我们的Java GUI依赖它。是的,您必须包含一个外部本机库,但是外观和感觉是本机的,响应速度更快(尽管Swing在过去几年中变得更快),并且与目标平台上的其他应用程序无缝连接。

看在上帝的份上,请不要使用AWT!作为一个web应用程序开发有许多优点,其中最重要的一点是更容易部署。@Stephen AWT GUI和web应用程序完全不同。这取决于你想做什么。然而,Swing比AWT有一个优势,尽管AWT包仍然用于事件处理。@aduric,我不打算将它们作为同一个包来介绍。我只是说了两件事:1)awt GUI很烂,2)web应用程序有很多优点。但是,GUI和web应用程序并不是完全不同的,你通常可以在web应用程序中完成大部分你想在本地完成的事情。因为web GWT也是一个很好的平台——特别是如果你已经知道SwingThe NetBeans WYSIWYG editor是一个噩梦的话。如果您负担得起,我建议您使用JFormDesigner,或者使用布局管理器手动完成。一开始可能需要更多的工作,但从长远来看,你有更多的控制权。对不起,不是这样。您可以完全控制内容的去向、所有属性、绑定等等。你只要知道去哪里找就行了。顺便说一句:据我所知,MacOSX使AWT看起来像macos aqua,而不是swing。@Tedil,我做了一些研究,似乎MacOSX使AWT和swing看起来都像aqua。我们肯定使用Swing,而且它看起来绝对像Aqua。@Jules Olléon:我发布的商业软件是用Java编写的,可以在Windows、OS X和Linux上运行。我使用Swing和IntelliJ的GUI编辑器(这很好,因为它自动隐藏了许多样板文件、无意义、冗长、无趣的Swing代码)和一些定制组件(这些组件在每个平台上的工作原理都是100%相同的)。像一个自定义的双/三/四进度条、自定义的“键入时查找”列表(就像Google用来提供建议的列表)和一些特定于我的问题域的高级自定义组件。@WizardOfODS:您在Windows和Linux上使用的是什么LaF?您使用的是Windows和GTK样式还是Swing默认模式?@Jonas:在Windows上,我们为用户提供了默认Swing布局和Nimbus之间的选择。在Linux上,它是默认的Swing,不管发生什么:但是有很多问题(包括这里的很多问题)。例如,我们有“可关闭选项卡”和