现在查看两个文件的源代码。
查看 GoodEveningApplet.java 注意到一些几点
* 它包含了init() 方法。包含applet的HTML文档必须调用含有init()方法的类, 来使applet运行。
* 代码的第一行是package name firstapplet 。根据Java的惯例类文件被保存在了firstapplet 目录下了。
*声明了导入的是AWT packages, 而不是 Swing:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
?
2、双击项目面板里的GoodEveningApplet.html 并且选择内容面板底部的Source标签来查看源代码。请注意向导插入代码值firstapplet.GoodEveningApplet.class。
3、选择File|Save All 来保存源代码和项目文件。
Note: JBuilder默认地将源文件保存在
/
/jbproject/FirstApplet/src/firstapplet/
?
applet HTML 文件保存在classes directory:
/
/jbproject/FirstApplet/classes/
?
类文件,在编译以后,被保存在输出目录下:
/
/jbproject/FirstApplet/classes/firstapplet/
?
JBuilder 总是按照package的层次关系来保存文件的。在这个例子中,代码和class文件被保存在代码和输出路径下的一个名为firstapplet 路径中,体现了firstapplet package 的结构。这些路径可以通过项目向导来进行设置,在项目的属性对话框中查看。在本教程中,你可以接受JBuilder项目向导第二步的默认设置。
?
步骤三:编译和运行你的applet
?
现在开始编译运行你的applet。编译就是运行Java编译器的一个过程。编译器,就是把源代码翻译成Java字节代码,产生.class文件。
?
重点:要想知道关于在JBuilder中运行JDK 1.1.x and 1.2/1.3 applets的信息,可以查阅Web Application Developer's Guide 中"Working with applets"的"Running applets" 主题。
1、选择Run|Run Project,或者点击运行按钮来编译和运行applet。运行菜单和运行按钮可以使applet运行JBuilder的applet viewer中,AppletTestbed。
提示:你也可以右击项目面板的GoodEveningApplet.html 然后选择 Run。这样就可以使你的applet运行在Sun's appletviewer 命令行工具中。
?
目前,applet 窗口是空的,因为applet还没有有一个用户界面。
?
当你运行你的applet时,appBrowser底部的消息面板中将会显示任何编译时发现的错误。修改错误,并且再次运行applet。
?
你的applet将在被显示在JBuilder's AppletTestbed中,如下图所示:
http://blog.csdn.net/yuxiaojie/gallery/image/8019.aspx
你可以通过Runtime Properties dialog box 的applet tab来改变applet运行的设置。你可以选择Project|Project Properties来打开 Project Properties dialog box 选择Run的标签,在Run页面中选中GoodEveningApplet点击Edit。 在Applet tab中的设置控制了工具条中运行菜单和运行图标的行为。选择Main Class来使你的applet运行在JBuilder's AppletTestbed中。选择HTML来使你的程序运行在 Sun's appletviewer中。当你使用Applet wizard 来创建你的applet, Main Class option 将被设置为默认值。
Important: 运行在HTML 文件中的Applets,将调用类中的init() 方法,而不是直接运行 .java 文件。任何试图运行 .java 文件的结果都会产生一个错误信息(除非在applet向导的步骤一中你选择了 Can Run Standalone 选项):
java.lang.NoSuchMethodError: main
Exception in thread "main"
??????????????????????? 2、选择Exit来关闭"Good Evening" applet。
3、右击消息面板的GoodEveningApplet 标签,选择移除"GoodEveningApplet" 来关闭运行中的消息。
?
步骤四:定制你的apllet用户界面
到目前为止,applet wizard已经为你产生了一个applet外壳,你可以用各种各样的组件来定制它的界面,按照以下步骤:
1.? 选择内容面板顶部GoodEveningApplet.java文件标签。
2.? 点击内容面板底部的Design标签切换至设计视图。
在内容面板中会出现UI designer,在它的上部是组件面板,右部是组件的属性监视器。你可以用组件面板来给你的UI添加组件,通过属性监视器来修改属性,并且给你的代码添加事件触发。现在,面板的上包含了由UI, Menu, and Other.而成的组件树。
你可以通过Runtime Properties dialog box 的applet tab来改变applet运行的设置。你可以选择Project|Project Properties来打开 Project Properties dialog box 选择Run的标签,在Run页面中选中GoodEveningApplet点击Edit。 在Applet tab中的设置控制了工具条中运行菜单和运行图标的行为。选择Main Class来使你的applet运行在JBuilder's AppletTestbed中。选择HTML来使你的程序运行在 Sun's appletviewer中。当你使用Applet wizard 来创建你的applet, Main Class option 将被设置为默认值。
Important: 运行在HTML 文件中的Applets,将调用类中的init() 方法,而不是直接运行 .java 文件。任何试图运行 .java 文件的结果都会产生一个错误信息(除非在applet向导的步骤一中你选择了 Can Run Standalone 选项):
java.lang.NoSuchMethodError: main
Exception in thread "main"
??????????????????????? 2、选择Exit来关闭"Good Evening" applet。
3、右击消息面板的GoodEveningApplet 标签,选择移除"GoodEveningApplet" 来关闭运行中的消息。
?
步骤四:定制你的apllet用户界面
到目前为止,applet wizard已经为你产生了一个applet外壳,你可以用各种各样的组件来定制它的界面,按照以下步骤:
1.? 选择内容面板顶部GoodEveningApplet.java文件标签。
2.? 点击内容面板底部的Design标签切换至设计视图。
在内容面板中会出现UI designer,在它的上部是组件面板,右部是组件的属性监视器。你可以用组件面板来给你的UI添加组件,通过属性监视器来修改属性,并且给你的代码添加事件触发。现在,面板的上包含了由UI, Menu, and Other.而成的组件树。
http://blog.csdn.net/yuxiaojie/gallery/image/8020.aspx
3、将属性监视器中的layout由默认改为BorderLayout。
??????????? BorderLayout 以区域的方式来安排组件,命名为North, South, East, West, 和 Center。你可以用这种方式来使一个组件位于容器的一个或者多个边缘以及用一个组件来填塞容器的中间。它也可以允许你用一个组件来填满整个容器。
??????????? 注意:在你选中属性监视器中下拉框中的的XYLayout(一种用户自定义的排列方式),JBuilder将会自动在代码中添加一条声明com.borland.jbcl.layout.*。这条重要的声明并不会在配置之前因为你选择其它一种更简易的布局方式而删除。你配置的applet程序将不能够运行,直到你将这句声明删除。因为applet将会去寻找jbcl layout classes来导入import。你需要在手动的删除浙江声明。
JBuilder's UI designer 会对每一给容器使用一种默认的布局,通常使awt父类容器的布局。在 Java AWT, 所有的面板都用 FlowLayout作为默认值。点击组件面板树的扩展图标,可以看到面板的布局管理器。布局管理器以一个项的形式显示在父类容器的的下面。
http://blog.csdn.net/yuxiaojie/gallery/image/8021.aspx
选择UI designer组件面板中的AWT 标签
你也许需要向右滚动组件面板才能找到AWT标签。不同与Swing组件,AWT 组件被大多数的浏览器所支持。
注意:UI designer 默认地总是打开Swing。你很有可能错误地选择了Swing 组件,这样你的applet件不能够运行在浏览器中。请小心地从组件面板的AWT页面中选择组件。
http://blog.csdn.net/yuxiaojie/gallery/image/8022.aspx
5、在面板中添加两个子面板。顶部的面板将放;一个下拉列表框,用来选择语言,以及一个用来说明此列表框的Label。底部的子面板用来放“Good Evening”的不同语言表示。
A.按住Shift然后再点击AWT 面板中的组件, java.awt.Panel。
按住Shift可以使你一次性的下拉多个相同的组件,而不必每次都在组件面板中选择一个组件然后再放置在UI中。现在你可以添加两个子面板。
提示:将鼠标停留在组件上一会儿,就可以看见该组件的名称。
B.双击组件树中的this,然后添加两个panel,panel1 和 panel2 将会被添加在组件树的this的下面。
C.点击组件面板左边的选择工具,可以取消组件选择。
D.在属性监视器中核查panel的constraints属性。顶部的panel 应该位于North,底部的panel 应该位于Center。核对constraints属性
a.选中组件树或者UI designer中的一个panel 。当designer中的一个组件被选中时,在边角上会出现边界。
b.确认属性监视器中的constraints属性中,顶部的panel设置为North,底部的panel设置为Center。如果不是,可以点击 constraints 列的右部,从下拉的列表中选择所需的属性。
E.重新命名顶部的panel为upper:
a.选中顶部的panel,双击属性监视器name属性右边的列。
b.输入“upper”,按确认。
提示:你也可以右键点击属性树中的组件,选择菜单中的Rename。
F.为底部的panel命名。
?
http://blog.csdn.net/yuxiaojie/gallery/image/8023.aspx
6、将upper panel的背景色改为orange:
??????????? A.选中upper panel。
B.点击background属性的右边那一列。
C.点击向下的箭头,打开颜色的下拉列表,选择orange。
7、将lower panel的背景色改为 Magenta
8、将lower的 layout属性改为CardLayout。
CardLayout panel将包含5 种panels, 每一种对应于"Good Evening"种的一种语言。 CardLayout 将组件(通常是panels)一个个地堞起来放置,就像一叠卡片一样。你一次只能看见一个,你可以通过其它的控件来选择哪一个面板放置在顶部,达到浏览的目的。CardLayout 通常伴随这一个控制的组件,如一个check box ?或者是list。控制组件的状态决定的了CardLayout 将要显示什么组件。用户可以通过在UI上进行选择来作出决定。
1、? 按住Shift给lower panel添加5个panels。每一个panel将用一种不同的语言来显示 "Good Evening"。选择“选择工具”来取消多选。
提示:如果你把组件放置在错误的位置,在组件树中选中它,按下Delete键。然后重新添加。
2、? 将新添加的panels 1 到 5 都改为 BorderLayout.
a)???????? 按住Shift或者Ctrl选中。??
b)??????? 将layout属性改为 BorderLayout。现在5个panel都有了BorderLayout属性。
c)??????? 选中组键树或者UI designer中的其他属性来取消对这些panel的选择。
3、? 将5个panel的背景色都改得各不相同。
提示:点击属性监视器右边的列,并且点击下拉框右边的带小点的按钮来打开背景色对话框。可以使用滑动条来来创建颜色。
4、? 保存文件和整个项目。
5、? 右击GoodEveningApplet.html 选择 Run using "GoodEveningApplet." 。当applet运行在 Sun's appletviewer中时,你仅仅看见 upper 和CardLayout的顶部panel。 在你添加了下拉框后并且添加了列表选择事件后,其余的语言面板就可以显示出来了。
6、? 退出applet。
7、? 右击GoodEveningApplet 标签关闭消息面板并且选择Remove "GoodEveningApplet" 。
?
步骤五:为你的applet添加AWT组件
现在你在顶部的panel添加一个Label和Choice控件。
1.? 选择组件面板的 AWT 标签,并选择Choice组件。
2.? 将组件放置在顶部橙色的面板上,可以使用以下两种方法之一:
a)???????? 点击组件树中upper pannel。
b)??????? 点击 UI designer.中的upper panel。
现在Choice1 被添加在组件树的upper标签下。
3.? 选择Label控件,并将它放置在Choice控件的左边。
现在Label也被添加到组件树的upper标签下。
4.? 选中label1并沿着以下步骤进行:
a)???????? 双击text属性右边的列,使已经存在的文本呈现高亮度。
b)??????? 输入“Select a language”然后按下确认, "Select a language" 将会出现在Choice控件旁边的label控件里。
c)??????? 点击font属性来修改字体,点击右边的带点按钮可以打开Font对话框。
d)??????? 将Bold改为20。
e)???????? 改变文本的前景色,点击下拉的箭头,选择blue。
你的设计应该如下所示:
?
http://blog.csdn.net/yuxiaojie/gallery/image/8024.aspx
5、按住Shift选择 AWT label 组件,为panel 1~5分别添加一个label控件
每一个Label都将显示 "Good Evening" 的一种语言形式,记住点击组件面板左边的选择工具可以取消多选。
6、将每一个Label改为"Good Evening"的一种语言表示。首先,选择组件树中的每一个子面板下的label控件,在text属性里输入"Good Evening" ,按照以下的对应关系给每一个label赋值:
l???????? label2: Good Evening (English)
l???????? label3: Guten Abend (German)
l???????? label4: Oodgay vening eay (Pig Latin)
l???????? ?label5: God Kväll (Swedish)
l???????? label6: G'day, Mate (Australian)
7、按住Ctrl将label2到label6选中,将它们的设置为Bold,font size设置为24。将label的前景色设置为黑色。点击组件树或者UI designer中的组件来取消多选。
8、通过改变属性监视器中constraints的属性来改变每一个label的位置:
l???????? label2: North
l???????? label3: South
l???????? label4: East
l???????? label5: West
l???????? label6: Center
注意:注意在BorderLayout面板中每一个label的位置, Center将填充整个面板,而North, South, East, 和West仅仅是一部分。
9、将panel 5的布局方式改为FlowLayout, 同upper panel的布局相同。
注意到"G'day, Mate" label 移动顶部面板的中部,当你想要组件一列列的排列时,FlowLayout 是一个好的布局选择。
?
接下来,你要添加一个按钮,FlowLayout 布局方式将会将它和label安排在一列中。FlowLayout 将组件从左到右地安排在同一列。当一列排满了,其余的组件就被移到新的一列。
10、选择AWT 的Button组件,并把它放置"G'day, Mate" label.的左边。
试着将button移动到designer的另一个地方。FlowLayout总是将其移动和label同一行的位置上,你设计的applet应该类似与下图:
http://blog.csdn.net/yuxiaojie/gallery/image/8025.aspx
10、Choose File|Save All to save the project.选择File|Save All来保存整个项目。
?
步骤6 :编辑你的源代码
在这一步中,你将给drop-down 添加语言列表,然后,添加事件来使语言面板和choice组件连接在一起。
1、? 按以下步骤在init()方法中为drop-down list添加语言:
a)???????? 点击内容面板中的Source 标签来切换至代码编辑器。
b)??????? 选中左部面板中的init() 方法init() 方法的代码将会高亮度在编辑器中显示。
提示:点击左部结构化的面板并且输入方法的名字可以寻找一个方法。
c) 将光标移到try/catch模块前和{后,输入回车来创建新的一空白行。
提示:选择View|Show All 可以展开编辑器,并且隐藏项目面板和结构化的面板。
D
c)??????? 为init() 方法添加以下代码:
//Initialize the applet
? public void init() {
??? choice1.addItem("English");
??? choice1.addItem("German");
??? choice1.addItem("Pig Latin");
??? choice1.addItem("Swedish");
??? choice1.addItem("Australian");
??? try {
????? jbInit();
??? }
??? catch(Exception e) {
????? e.printStackTrace();
??? }
? }
提示:可以使用CodeInsight 来帮你完成代码。输入choice1. 然后等待一段时间或者按下Ctrl+spacebar 就会出现弹出窗口来显示调用方法。请保证在choice1后出入了dot(.)使用箭头来从弹出框中选择addItem(String)按下回车。你可以在Editor Options dialog box (Tools|Editor Options|CodeInsight)配置 CodeInsight
http://blog.csdn.net/yuxiaojie/gallery/image/8026.aspx
如果在你的代码中出现了语法错误,在结构化的面板中将会出现一个错误文件夹,打开文件夹,选中错误信息,在你的源代码中错误部分就会以高亮度显示。
?
接下来,你要将事件和语言选择连接起来。当你选择drop-down list 中的一种语言时,cardLayout panel 中的"Good Evening"将以不同的语言显示出来。
?
1、? 沿着以下步骤来连接choice list 事件:
a)???????? 返回到UI designer
b)??????? 选择组件树中的upper panel下的 choice1
c)??????? 选择属性监视器中的Events标签
d)??????? 双击itemStateChanged 事件
JBuilder 将产生该方法的代码,并且把光标移动到源代码中插入方法处。
void choice1_itemStateChanged(ItemEvent e) {
???? }
e)??? 添加以下代码用来将语言选择和语言面板相连接:
void choice1_itemStateChanged(ItemEvent e) {
??? if ("English".equals(choice1.getSelectedItem())){
????? cardLayout1.show(lower, "panel1");
??? }
??? else if ("German".equals(choice1.getSelectedItem())){
????? cardLayout1.show(lower, "panel2");
??? }
??? else if ("Pig Latin".equals(choice1.getSelectedItem())){
????? cardLayout1.show(lower, "panel3");
??? }
??? else if ("Swedish".equals(choice1.getSelectedItem())){
????? cardLayout1.show(lower, "panel4");
??? }
??? else if ("Australian".equals(choice1.getSelectedItem())){
????? cardLayout1.show(lower, "panel5");
??? }
? }
提示:你可以泳代码模板来产生代码。输入if然后按下Ctrl+J 来获得代码模板的弹出框。用方向键来作出选择。选择if-else if 模块,按下回车,这样代码就产生了:
if () {
???????
? }
? else if{
???
? }?
2、? 选择File|Save All
3、? 右击项目面板中的GoodEveningApplet.html ,选择"GoodEveningApplet."来运行applet。
?"Good Evening" applet 运行在Sun's appletviewer中:
http://blog.csdn.net/yuxiaojie/gallery/image/8027.aspx
如果有任何的错误信息,它们都会出现在appBrowser底部的消息面板中。选择一个错误信息,然后按下F1可以获得帮助。选择错误信息,使他们在编辑器中呈高亮度显示。也许有的时候,错误可能出现在高亮度行之前或者之后,更正错误,保存项目,重新运行applet。
1、? 测试drop-down list。在列表中的语言选择将会和语言面板中的语言相匹配。
2、? 退出applet。
现在为panel5的button1添加Button的标签和button的事件。当你点击按钮,label6的"G'day, Mate" 文字颜色将会变为红色。
1、? 按以下步骤添加Button的标签和button的事件:
a)???????? 切换至UI designer
b)??????? 选择panel5上的button1 然后将Label属性由button1 改为 Push Me。按下确认。注意到按钮将会自动调整大小来适应文字。
c)??????? 选择属性监视器的Events标签,来定义当按钮被按下时将会出现什么事件。
d)??????? 双击ActionPerformed事件:
JBuilder将会切换至编辑器中为ActionPerformed 事件添加的代码的骨架部分。
提示:双击designer中的button按钮也可以达到同样的效果。
现在输入代码,定义按钮事件,使得"G'day, Mate" 变红。
e) 输入以下代码:
void button1_actionPerformed(ActionEvent e) {
? label6.setForeground(new Color(255,0,0));
}
2、? 保存项目。
3、? 运行applet 然后选择drop-down list中的"Australian" 。点击 "Push Me"按钮。"G'day, Mate" 将会变红。
你的applet应该类似于下图:
http://blog.csdn.net/yuxiaojie/gallery/image/8028.aspx
1、? 退出applet。
?
步骤七:配置你的applet
配置一个Java applet就是将各种各样的Java class 文件,image文件,和其他applet所需要的文件大包,并且将它们和applet HTML文件一起复制到服务器或者客户端的某个地方,以便它们能够被执行。你可以单独的传送它们,也可一将它们以压缩或者未压缩过的档案文件来传送。JAR files, Java archive files,都是最常用的形式。JAR files 具有文件小和下载速度快的优点。
当你配置applet时,请记住以下几点:
l???????? 在配置前保存并且编译你的项目。
l???????? 打开GoodEveningApplet.html ,点击Source 标签,回顾以下几步:
n???????? 核对code属性是不是fully qualified class name,包括package name。在本例中,code的值应该是firstappplet.GoodEveningApplet.class.。
n???????? 核对codebase 属性是不是指明了和HTML文件正确的相对路径。在本例中,codebase 值是 ".", 因为包含class file 的JAR file将会和HTML文件在同一目录下。
l???????? 保持现有的目录结构。在本例中,GoodEveningApplet.class 在firstapplet 目录下,反映了包结构 firstapplet/GoodEveningApplet.class。如果你要配置JAR file, 核对文件的目录结构使之相匹配
l???????? 保持现有的目录结构。在本例中,GoodEveningApplet.class 在firstapplet 目录下,反映了包结构 firstapplet/GoodEveningApplet.class。如果你要配置JAR file, 核对文件的目录结构使之相匹配。
l???????? 把所有需要的class文件传送到合适的Internet server上。class files和HTML file 的相对路径必须与 codebase 属性相匹配。
l???????? 把HTML files放在Internet server的合适路径下。
?
注意:如果你是为了顺从老版本的浏览器(JDK 1.02)请你记住,JAR files是不被支持的,你要用ZIP archive file 来替代。
?
用 Archive Builde来配置你的applet
?
JBuilder的 Archive Builder 会核查发布你applet的所有必要的文件并将他们归档为JARfiles。
?
配置你的applet:
1、? 保存你的项目。
2、? 选择 Project|Make Project "FirstApplet.jpx" 来编译你的项目。
3、? 在/
/jbproject/
路径下为你的applet创建一个applet目录。这将成为你放置和测试的HTML file 和? JAR file 的目录。
4、? 选择 Wizards|Archive Builder 来打开Archive Builder
http://blog.csdn.net/yuxiaojie/gallery/image/8029.aspx
1、? 在步骤一的Archive Type的下拉框中选择 Applet JAR 点击next进入下一步。
Note: 当你在为不支持JAR files的老版本浏览器开发applet时,选择 Applet ZIP .
2、? 接受默认的 Applet JAR 的默认名。
3、? 点击File字段旁带点的按钮,浏览到 /
/jbproject/applets/
目录下。
4、? 将File Name字段的JAR file name 改为GoodEvening.jar 然后点击确认。
步骤2应该是如下图所示:
http://blog.csdn.net/yuxiaojie/gallery/image/8030.aspx
1、? 点击next进入下一步。
2、? 接受步骤3的默认设置。
步骤3如下图所示:
http://blog.csdn.net/yuxiaojie/gallery/image/8031.aspx
1、? 点next进入步骤4。
2、? 点next进入步骤5
你不需要添加任何的libraries。
3、? 接受步骤5中的默认设置。
注意到manifest setting选项被设置成了create a manifest file。
4、? 点finish来退出archive builder。
在项目面板中出现了一个名为 Applet JAR 的节点,你可以通过右击,选择Properties来修改它。
5、? 右击 Applet JAR archive 节点,选择Make 来编译项目。
Archive Builder 将把你在步骤3中加入的 firstapplet package 聚集在 JAR file中。
6、? 点击Applet JAR archive展开图标来查看GoodEvening.jar archive file。
7、? 双击项目面板里的JAR file 。
manifest file 出现在内容面板里,JAR files中的内容则出现在structure pane中。选中 structure pane 的文件,在内容面板中查看它。
Note: 如过你要把多个程序传送到相同的位置,你可以将文件重新分类,而不是将它们都包含在每一个的JAR 文件中。
?
步骤八:修改HTML 文件
目前为止你的applet被配置在了 JAR 文件中,你需要修改HTML 中的archive 属性并且包含JAR 的文件名。你也可以在