用javac -encoding utf-8 neoApplet.java 編譯
neoApplet.java
import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.applet.AudioClip; public class neoApplet extends Applet implements ItemListener,ActionListener,MouseListener,MouseMotionListener{ Button btn; // 宣告 Button 型態的變數 btn int image_x=10,image_y=10,dx,dy; Image img; Image imgBackup; // 宣告 Image 類別型態的變數 imgB Graphics gBackup; // 宣告 Graphics 類別型態的變數 gB boolean clicked=false; AudioClip midi[]=new AudioClip[2]; // 宣告 AudioClip 介面型態的陣列 AudioClip midiplayer; // 宣告 AudioClip 介面型態的變數 current Choice chc=new Choice(); // 建立 Choice 元件 public void mouseMoved(MouseEvent e){} //MouseMotionListener public void mouseEntered(MouseEvent e){} //MouseListener public void mouseExited(MouseEvent e){} //MouseListener public void mouseReleased(MouseEvent e){}//MouseListener public void mousePressed(MouseEvent e) { dx=e.getX()-image_x; // 取得按下之點與基準點 x 方向之距離 dy=e.getY()-image_y; // 取得按下之點與基準點 y 方向之距離 } public void mouseDragged(MouseEvent e) { if(dx>0 && dx< Integer.valueOf(getParameter("imageWIDTH")) && dy>0 && dy< Integer.valueOf(getParameter("imageHEIGHT"))) // 如果指標落在圖形上方 { image_x=e.getX()-dx; // 取得拖曳時,基準點的 x 座標 image_y=e.getY()-dy; // 取得拖曳時,基準點的 y 座標 paint(getGraphics()); //Graphics g=getGraphics(); // update(g); // 清空畫面為背景顏色,再呼叫 paint() } } public void mouseClicked(MouseEvent e) { } public void init() { midi[0]=getAudioClip(getCodeBase(),"sky.mid"); midi[1]=getAudioClip(getCodeBase(),"panther.mid"); midiplayer=midi[0]; midiplayer.play(); chc.add(" sky "); chc.add(" panther "); add(chc); btn=new Button(getParameter("buttonCaption")); // 建立 btn 物件 btn.addActionListener(this); // 以 applet 本身當成 btn 的傾聽者 add(btn); // 將 btn 按鈕加入 applet 視窗裡 img=getImage(getCodeBase(),getParameter("imageFileName")); // 載入圖檔 imgBackup=createImage(getWidth(),getHeight()); gBackup=imgBackup.getGraphics(); addMouseListener(this); // 設定 applet 為自己本身的傾聽者 addMouseMotionListener(this); chc.addItemListener(this); // 把 applet 當成 chc 的傾聽者 } public void paint(Graphics g) { gBackup.setColor(new Color(255,255,255)); // 設定繪圖顏色為白色 gBackup.fillRect(0,0,getWidth(),getHeight()); // 以白色填滿整個畫面 gBackup.setColor(Color.blue); // 設定繪圖顏色為藍色 gBackup.fillOval(30,30,50,50); // 繪出圓形並填滿藍色 gBackup.drawImage(img,image_x,image_y,this); // 將 img 畫上 gBackup.setColor(Color.orange); // 設定繪圖顏色為橘色 gBackup.fillOval(60,40,90,90); // 繪出圓形並填滿橘色 g.drawImage(imgBackup,0,0,this); // 將 imgB 的內容顯示在 applet 上 } public void actionPerformed(ActionEvent e) { System.out.println("Button was clicked message show in the java console"); if(btn.getLabel().equals(getParameter("buttonCaption"))) { btn.setLabel("clicked"); // 設定按鈕上方的文字為 Stop } else { btn.setLabel(getParameter("buttonCaption")); // 設定按鈕上方的文字 } } public void itemStateChanged(ItemEvent e) { midiplayer.stop(); // 停止播放歌曲 int index=chc.getSelectedIndex(); // 取得被選取的索引值 midiplayer=midi[index]; // 設定播放的歌曲為 midi[index] midiplayer.play(); // 播放歌曲 } }
web.html.
<!-- web.htm --> <HTML> <BODY BGCOLOR = "FFFF00" > <APPLET CODE = "neoApplet.class" WIDTH = "180" HEIGHT = "180" ALT = " 很抱歉,您的瀏覽器不支援 Java applet" ALIGN = "MIDDLE" VSPACE = "20" > <PARAM NAME = "buttonCaption" VALUE = "按鈕"> <PARAM NAME = "imageFileName" VALUE = "logo.jpg"> <PARAM NAME = "imageWIDTH" VALUE = "55"> <PARAM NAME = "imageHEIGHT" VALUE = "55"> </APPLET> </BODY> </HTML>
要想在前面加package neo.applet; 封裝起來的話
用JAR方式可用 jar cvf neoAppletExample.jar -C ./classes/* .
注意最後有個點,classes下是/classes/neo/applet/neoApplet.class
web_jar.html
<HTML> <BODY BGCOLOR = "FFFF00" > <APPLET CODEBASE = "." CODE = "neo.applet.neoApplet" ARCHIVE = "neoAppletExample.jar" WIDTH = "180" HEIGHT = "180" ALT = " 很抱歉,您的瀏覽器不支援 Java applet" ALIGN = "MIDDLE" VSPACE = "20" > <PARAM NAME = "buttonCaption" VALUE = "按鈕"> <PARAM NAME = "imageFileName" VALUE = "logo.jpg"> <PARAM NAME = "imageWIDTH" VALUE = "55"> <PARAM NAME = "imageHEIGHT" VALUE = "55"> </APPLET> </BODY> </HTML>
沒有留言:
張貼留言