JBuilder 2005的新特性有:
1、支持最新标准,快速开发各类型 Java 应用程序
Borland JBuilder 2005 Enterprise 版支持各类型 Java 应用程序开发,包含 JSF、JavaServer Page (JSP)、Servlets、Enterprise JavaBean (EJB)、Web Services、Struts、XML、Swing、数据库应用程序、行动式设备应用程序等,JBuilder 协助开发人员了解最新J2SE 5.0 (JDK 1.5) 语言新功能所能带来之帮助,并针对 J2SE 5.0提供程序代码重构 (Refactoring) 与除错能力, JBuilder 2005 亦内建符合 J2EE 1.4 规格之 Tomcat 5.0 Web 服务器。
2、开发企业级J2EE 平台应用程序,部署于主要应用程序服务器
运用双向可视化的EJB设计工具,可快速建立能够重复使用之Enterprise JavaBean。可视化双向之部署描述编辑器(Deployment Descriptor Editor),帮您管理部署结构( structure )、交易(transaction )、策略(policies)、权限角色( security role)与其它组合与部署 EJB 所需之属性与信息,并且涵盖标准部署描述(Deployment Descriptor)与特定服务器专属之部署描述。JBuilder 紧密整合多重业界领先之J2EE应用服务器,包括Borland Enterprise Server、BEA WebLogic Server、JBoss、IBM WebSphere 与 Sybase EAServer。
3、简化 JavaServer Faces 与 Struts 应用程序开发
运用 JBuilder 所提供之多项工具与精灵,使得运用 JSF、Struts、Servlets、JavaServer Page 与 JSP表达式语言(Expression Language) 开发动态 Web 应用程序变得更为容易,运用流程设计工具可将现有 Web 应用程序建立 JSF 所需之档案,组合而成全功能之应用程序。Struts 设计工具将开发以 Struts 为基础之应用程序所需之工具紧密结合。此外, TagInsight 精灵能够针对 JSP、HTML与 XML 档案自动提示标签(Tag),并可将 JSP 表达式语言(Expression Language) 关键词以不同色彩标示,提升程序代码撰写速度并减少错误发生之机会。
4、运交高质量、高效能之应用程序
JBuilder 2005 Enterprise 版是市场上唯一完全整合效能调校工具之Java 整合开发环境,内建包含剖析工具(profiler ) 、执行绪除错器( thread debugger ) 与程序代码涵盖分析工具(Code Coverage),协助开发人员找出与修正效能相关问题。JBuilder 2005 Enterprise 版中增添了J2EE 效能剖析工具 Borland Optimizeit Request Analyzer协助您分析 J2EE 架构中跨越不同层级 ( tiers ) 程序代码之执行效率。
此外, JBuilder 2005 中所内建之程序代码稽核 ( code audit ) 工具能够自动发现常见之错误写码方式,进而协助开发团队建立高质量、高效能之应用系统。
二、使用JBuilder 2005开发Applet应用
为了协助我们开发、测试与部署Applet应用程序,JBuilder2005提供下列工具:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)Applet Wizard:可快速建立Applet基本结构与相对应的HTML文件。
AppletTestBed:JBuilder提供的Applet执行与测试工具,我们可以利用它来查看Applet执行结果。
Applet Viewer:Sun Microsystems公司提供的Applet执行与测试工具。
(一)使用Applet Wizard
JBuilder 2005提供的Applet Wizard可协助我们建立Applet的基本程序代码。启动Applet Wizard的方式如下:
● 选取File | New,打开Object Gallery对话框。
● 在Web窗格内,选取Applet图标后按下[OK]按钮。(如下图1)
图1(点击放大)
以下是Applet Wizard的各项步骤:
在步骤一中我们要在name栏中输入HelloApplet,directory栏中修改路径为c: jbprojectHelloApplet,并勾选[Generate standard method)选项。按下[Next]按钮前往步骤二。(如下图2)
图2(点击放大)
在步骤二中有JDK版本、Output path、Backup path、working directory以及选择的default path和test path,在这里我们都选默认值,按下[Next]按钮前往步骤三。(如下图3)
图3(点击放大)
在步骤三中我们修改class Javadoc fields中的Title、Description、Copyright、Company、author和version字段的值,其他项采用默认值,按下[Finish]按钮。(如下图4)
图4(点击放大)
接下来开始下面的Applet Wizard四个步骤操作:(如下图5)图5(点击放大)
● Package字段:Applet隶属的套件名称,默认为目前工程名称。
● Class name字段:Applet类名称。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)● Base class字段:Applet所继承的基础类,分为java.applet.Applet与javax.swing.JApplet两种;前者为AWT套件,后者则是使用Swing套件。
此步骤还包含下列三个选项:
● Generate header comments:在Applet类文件内加上标头注解信息(设置于Project Properties对话框的General窗格)。
● Can run standalone:在Applet类内加入一个main()方法(主要用途是方便测试), 我们不需要另外撰写一个HTML文件就可以测试Applet。
● Generate standard methods:建立标准的Applet方法,例如:start()、stop()、destroy()、getAppletlnfo()与getParameterlnfo()方法。
选择[Next] 按钮进入下一步:(如下图6)
图6(点击放大)
现在我们可以设置欲传入Applet的参数了。Applet Wizard会在HTML文件的<applet>标签内产生<param>标签,并在Applet类文件内加入必要的程序代码。点击[Add Parameter]按钮将产生一笔新数据,其Name字段值默认为param0。
选择[Next] 按钮进入下一步:(如下图7)
图7(点击放大)
在这一步中,如果我们勾选了[Generate HTML Page)选项,Applet Wizard将会建立一个HTML文件:其中包含调用Applet所需要的<applet>标签。此外,我们可以通过Name、Codebase、Width、Height等字段来设置<applet>标签的各项属性。
选择[Next] 按钮进入下一步:(如下图8)
图8(点击放大)
在这一步中,我们可以定义Applet的运行时期配置(runtime configuration)。如果我们的工程内并未定义任何运行时期配置,[Create a runtime configuration)默认会被勾选,请在Name字段内指定运行时期配置的名称。按下[Finish]按钮,离开Applet Wizard。回到工程窗格中,我们将发现Applet Wizard产生了两个文件:HelloApplet.java与 HelloApplet.html。
(二)编译并执行HelloApplet
虽然HelloApplet尚未具备任何功能,但是它已经是一个不折不扣的Applet了,让我们先看看它的执行结果。请在AppBrowser主菜单内选取Run | Run Proiect,执行结果如图9所示。
图9(点击放大)
当我们按下[Exit]按钮离开,接下来将设计Applet的用户界面。
(三)设计Applet用户界面
在此步骤中,我们将利用JBuilder 2005的设计工具为HelloApplet添加较丰富的用户界面,步骤如下。
1、在工程窗格中,以鼠标左键双击HelloApplet.java文件,将它打开于JBuilder编辑器中。
2、选取编辑器下方的Design页签。
3、如图10所示,先在结构窗格的组件树中选取this节点,然后在查看器内将this节点的Layout属性更改为BorderLayout(原来为<defaultlayout>)。
图10(点击放大)
4、依照下列步骤在Applet内加入两个Panel容器对象
点击组件托盘的AWT页签,在AWT页签内选取java.awt.Panel组件,然后以鼠标左键点击结构窗格的this节点。新的Panel对象将会出现在this节点下方,名称为panel1。请在查看器中将panel1的Constraints属性设置为North。仿照上一步骤加入第二个Panel对象,将它的Constraints属性设置为Center。
5、更改Panel对象的名称与属性
在panel1上点击鼠标右键,选取[Rename],将其名称更改为UpperPanel。接着在查看器内将background属性更改为Light Gray。
在panel2上点击鼠标右键,选取[Rename],将其名称更改为LowerPanel。接着在查看器内将background属性更改为White(我们也可以依照自己的喜好来设置背景颜色)。
6、在LowerPanel加入两个Panel对象
将LowerPanel的layout属性设置为CardLayout,在组件托盘内选取AWT页签的java.awt.Panel组件,然后点击结构窗格的LowerPanel节点,这个动作将加入一个Panel对象。新加入的Panel对象会出现在LowerPanel节点下方(名称为panel1)。依此要领加入第二个Panel对象(名称为panel2)。
将panel1与panel2的Layout属性设置为BorderLayout,将panel1与panel2的background属性分别设置为White与Pink。
完成上述所有步骤后,请先保存我们的工程。 现在我们已经完成Applet用户界面的基本雏形,接下来要加入某些UI组件。
(四)设计UpperPanel容器对象
依照下列步骤在UpperPanel内加入两个UI组件(Label与Choice):
1、在组件托盘的AWT页签内选取,java.awt.Choice组件,然后点击结构窗格的UpperPanel节点。新的Choice组件将会出现在UpperPanel节点下方。
2、在组件托盘的AWT页签内选取java.awt.Label组件,然后点击结构窗格的UpperPanel节点,这个动作将会加入新的Label组件。新的Label组件将出现在UpperPanel节点下方。
3、更改lable1对象的属性:
在结构窗格内点击label1对象,将Text属性更改为Select a language:"。点击font属性的按钮打开Font对话框,在Size字段里输入20。 将foreground属性设置为Blue,Select a Language:字符串将以蓝色显示。
4、在panel1与panel2对象内分别加入一个Label组件。首先在组件托盘内选取AWT页签的java.awt.Label组件,然后点击LowerPanel节点下的panel1节点。新加入的Label对象将会出现在panel1节点下方(名称为label2)。依此要领,在panel2内加入另一个Label组件(名称为label3)。
5、依照下列方式设置label2的属性
将text属性设置为Good Movning!,constraints属性设置为Center, alignment属性设置为CENTER。点击font属性的按钮,在Font对话框内将Size设置为24。
6、依照下列方式设置label3的属性
将text属性设置为早上好,constraints属性设置为Center,alignment属性设定为CENTER。点击font属性的按钮,在Font对话框内将Size设置为24。
完成上述步骤就会出现如下图11所示:
图11(点击放大)
(五)设计Choice对象在此步骤中,我们将在Choice对象内加入两个选项,并加入必要的程序代码。
1、点击编辑器下方的Source页签,切换到源代码编辑画面。
2、点击结构窗格的init()方法,JBuilder 2005会自动将光标移到init()方法的声明位置。
3、在init()方法内加入下列两行程序代码,用蓝颜色标识的(位于try/catch区块上方):(如下图12所示)
图12(点击放大)
---------------------------------------------------
choice1.addItem("English");
choice1.addItem("Chinese");
--------------------------------------------------
说明:additem()方法可以为Choice对象加入一个选项。
4、点击Design页签回到UI设计工具。
5、在结构窗格内点击choice1节点,然后选取查看器的Event页签。
6、以鼠标左键双击itemStateChaoged事件,JBuilder会在HelloApplet.java内新增一个choice1_itemStateChanged()方法,并将光标移到该方法所在位置。
7、参考下列范例撰写choice1_itemstateChanged()方法的内容,用蓝颜色标识的(如下图13所示)。
------------------------------------------------------------------------------------
public void choice1_itemStateChanged(ItemEvent e) {
if ("English".equals(choice1.getSelectedItem())){
cardLayout1.show(LowerPanel,"panel1");
}
else if ("Chinese".equals(choice1.getSelectedItem())){
cardLayout1.show(LowerPanel,"panel2");
}
}
-------------------------------------------------------------------------------------
图13
当HellloApplet被执行时,如果Choice选项为English,LowerPanel对象内将显示Good Movning!字符串(包含于panel1容器);如果Choice选项为Chinese,LowerPanel对象内将显示早上好字符串(包含于panel2容器)。
8、保存JBuilder工程,编译并执行HelloApplet,执行结果如图14所示。
图14
9、将[Select a language]旁边的下拉式菜单(Choice对象)切换至Chinese,我们将发现下方的信息更改为早上好。如图15所示。
图15
Applet1.java源代码如下:
package helloapplet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/**
* <p>Title: Study</p>
*
* <p>Description: This is a Stendent</p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author ghq
* @version 1.0
*/
public class Applet1 extends Applet {
boolean isStandalone = false;
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout2 = new BorderLayout();
Panel UpperPanel = new Panel();
Panel LowerPanel = new Panel();
CardLayout cardLayout1 = new CardLayout();
Panel panel1 = new Panel();
BorderLayout borderLayout3 = new BorderLayout();
Panel panel2 = new Panel();
BorderLayout borderLayout4 = new BorderLayout();
Choice choice1 = new Choice();
Label label1 = new Label();
Label label2 = new Label();
Label label3 = new Label();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public Applet1() {}
//Initialize the applet
public void init() {
choice1.addItem("English");
choice1.addItem("Chinese");
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
this.setLayout(borderLayout2);
UpperPanel.setForeground(Color.lightGray);
LowerPanel.setForeground(Color.white);
LowerPanel.setLayout(cardLayout1);
panel1.setLayout(borderLayout3);
panel2.setForeground(Color.pink);
panel2.setLayout(borderLayout4);
panel1.setForeground(Color.white);
label1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 20));
label1.setForeground(Color.blue);
label1.setText(""Select a Language:"");
label2.setAlignment(Label.CENTER);
label2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 24));
label2.setText(""Good Movning!"");
label3.setAlignment(Label.CENTER);
label3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 24));
label3.setText(""早上好"");
choice1.addItemListener(new Applet1_choice1_itemAdapter(this));
this.add(UpperPanel, java.awt.BorderLayout.NORTH);
UpperPanel.add(label1);
UpperPanel.add(choice1);
this.add(LowerPanel, java.awt.BorderLayout.CENTER);
LowerPanel.add(panel1, "panel1");
LowerPanel.add(panel2, "panel2");
panel1.add(label2, java.awt.BorderLayout.CENTER);
panel2.add(label3, java.awt.BorderLayout.CENTER);
}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
public void choice1_itemStateChanged(ItemEvent e) {
if ("English".equals(choice1.getSelectedItem())){
cardLayout1.show(LowerPanel,"panel1");
}
else if ("Chinese".equals(choice1.getSelectedItem())){
cardLayout1.show(LowerPanel,"panel2");
}
}
}
class Applet1_choice1_itemAdapter implements ItemListener {
private Applet1 adaptee;
Applet1_choice1_itemAdapter(Applet1 adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.choice1_itemStateChanged(e);
}
}