3. Swing开发
IDEA提供了一个相当强大的图形用户界面编辑器。虽然它没有做到像NetBeans的Matisse那样,但是它毫无疑问的是只比NetBeans稍差的那一个。特别地,它支持JGoodies表单(无疑最好的可用的布局管理器在GroupLayout前),在这些仍然被GridBagLayout(例如Eclipse的可视化编辑器)迷住的来说,它远远超前了。
有意思的是,IDEA坚持将产生的UI布局放在一个单独的.form文件中(这点与NetBeans类似),但是它默认不产生相应的Swing编码,它只在通过图形用户界面编辑时的编辑期间才产生(它也可以作为一个单独的ant任务打包)。如果你比较喜欢通过IDE在你的java文件直接的自动生成代码,你需要通过一个选项(设置选项是个更好的方法,因为我更喜欢不要让我所有的UI编码都隐藏或只有在运行IDE的特定的自动代码生成机制才显示出来)设置来激活该功能。
4. JSP/Struts开发
在IDEA中对Struts的支持是它的一个闪光点。In a fine example of the sort of attention to detail that IDEA is known for,它甚至可以为你下载所有需要的包。它不仅自动的设置所有的配置文件(包括Tiles和验证器),而且提供被叫做简单的java助手的struts面板,它为所有的Struts配置文件(包括tiles-config.xml和validation.xml)提供了图形编辑器和制作向导。
IDEA没有编辑JSP/HTML页面的可见编辑器,但是常规的IDEA的JSP/HTML编辑器即使没有可视化组件也是出色的。特别地,对嵌入式JavaScript的支持将会是对任何一个处理大量的DHTML或AJAX代码的人一个极好机会,另一个只有在做梦才会想到的一个吸引人注意的例子是,JavaScript编辑器提供对浏览器特定的元素(IE, Mozilla和Opera)的支持,也包括流行的AJAX框架,例如Dojo,Bindows和Prototype(图5和图6是IDEA对Struts支持的一个示例)。

图5. IDEA的Struts Web应用程序的安装

图6. IDEA的Struts助手
对于Web2.0的开发,IDEA对Google的Web工具包提供了很好的支持,这点已经成为它的核心特征之一。我发掘这点很吸引人,特别当你想到新的Google的Web工具包是怎么样的时候(但是既然这是由Google命名的,所以赢家也必然是他,很高兴地看到IDEA那么容易的支持了它)。
5. JSF开发
与Struts对应,JSF工程的选项是一次易用性的练习。你能过选择JSF的如下版本:1.0,1.1或者1.2,以及它的实现: JSF的R1或者Apache的MyFaces。IDEA甚至能够为你下载所有需要的包(在下载jar包时它还会显示相应提示)。NetBeans工作组注意:它对开源框架或实现(代替了Sun推荐的实现)提供了很好的支持,这在NetBeans是没有的。而且,JSF组件提供了对JBOSS Seam提供了支持,所有的人似乎都想为JSF开发提供一个标准的框架(就像Struts为JSP所做的那样)。这为IntelliJ对Java Web世界的边缘开发如此关心提供了证明。
重构看起来为JSF所关心(eg.将一个管理bean正确的移到另一个包中要更新faces-config.xml)。(见图7和图8,展示了IDEA对JSF的支持。)

图7. IDEA 中新建一个JSF的Web应用程序

IDEA对J2EE规范提供完全的支持。更重要的是,它对EJB3.0和JPA提供了完全支持,虽然在这点上它现在还是不及NetBeans(NetBeans为在持久层组件中的JPA提供者提供了自动添加入口的方法,并为所有的实体域的命名查询自动产生了编码,这点在IDEA中是没有的)。IDEA提供了对JPA持久化组件的ER图进行查看的选项,但是不幸的是,这仅仅在EJB组件中是可用的。当在一个普通的web组件中实用JPA时,我不能调用ER图选项。
IDEA的对J2EE/Java EE 5的支持到了一个比较高的层次,它甚至提供了一个从J2EE到基于注释的Java EE5的升级路径)。IDEA为所有主流的应用服务器提供了部署插件,例如WebLogic、WebSphere、JBoss、Geronimo和Glassfish。
为了做单元测试,它提供了对JUnit4的支持并且也为测量代码的覆盖度提供了一个集成的工具。