public class Applet1 extends Applet { boolean isStandalone = false; PopupMenu popupMenu1 = new PopupMenu(); MenuItem menuItem1 = new MenuItem(); MenuItem menuItem2 = new MenuItem(); MenuItem menuItem3 = new MenuItem(); Button button1 = new Button(); XYLayout xYLayout1 = new XYLayout();/*面板改變?yōu)閄YLayout布局,使用的是非jdk標(biāo)準(zhǔn)類*/ Button button2 = new Button(); Button button3 = new Button();/*添加三個(gè)按鈕*/ public void init() { menuItem1.setLabel("1"); menuItem2.setLabel("2"); menuItem3.setLabel("3"); button1.setLabel("button1"); button1.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePRessed(MouseEvent e) { button1_mousePressed(e); } }); this.setLayout(xYLayout1); button2.setLabel("button2"); button2.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { button1_mousePressed(e); } }); button3.setLabel("button3"); button3.addMouseListener(new java.awt.event.MouseAdapter() {/*三個(gè)按鈕的右鍵事件都為一個(gè)*/ public void mousePressed(MouseEvent e) { button1_mousePressed(e); } }); popupMenu1.add(menuItem1); popupMenu1.add(menuItem2); popupMenu1.add(menuItem3); this.add(button1, new XYConstraints(155, 5, -1, -1)); add(popupMenu1); this.add(button2, new XYConstraints(49, 94, 101, 32)); this.add(button3, new XYConstraints(235, 92, 98, 36)); } void button1_mousePressed(MouseEvent e) { int mods=e.getModifiers(); if((mods&InputEvent.BUTTON3_MASK)!=0) { popupMenu1.show(button1,e.getX(),e.getY()); } } }
通過在jbuilder的預(yù)覽中可以看到,三個(gè)按鈕未改動(dòng)位置,而且右鍵單擊也按要求在一個(gè)按鈕上出現(xiàn)。很可惜的是這樣的applet無法發(fā)布出來,我們?cè)囍蜷_class目錄下的Applet1.Html,IE報(bào)出一個(gè)出錯(cuò)信息:"load:test1.Applet1 cant't be instantiated"。原因就是IE并不熟悉com.borland.jbcl.layout下面的類,而這里使用了XYLayout。.那么我們開始制作包含該XYLayout類的JAR來發(fā)布該applet。
還是通過new一個(gè) Archive Builder開始,
Archive type : Applet
Project classes and resources : Include required classes and known resources
Required classes and resources : add test1.Applet1.class
再點(diǎn)擊next,就到了要害的一步,顯示的JBCL和DataEXPress都是applet所需要調(diào)用到的類,而且都是非jdk標(biāo)準(zhǔn)的,可以通過在這里選擇后也包含到這個(gè)JAR文件中,供applet調(diào)用,默認(rèn)的設(shè)定是Include required classes and all resources,即把a(bǔ)pplet所需要調(diào)用的類包含到JAR中,并且還包括這個(gè)類所中所包含的所有資源,而不管applet是否會(huì)用到。所以我們一般情況下只需要選擇include required classes and known resources,資源文件要盡量少的包含到JAR中,以避免JAR文件過于龐大。記住是要讓JBCL和DataExpress都選擇為Include Deps。這樣便很輕松的完成了相關(guān)類的添加工作。