//MyFirstCoffee.java -- by tsaiwn@csie.nctu.edu.tw import java.applet.Applet; import java.awt.event.*; import java.awt.*; import java.awt.*; // Graphics, Font, Color, ... public class MyFirstCoffee extends Applet implements MouseListener { ///////////// 注意檔名要與 Class 名相同 public static void main(String xxx[ ]) { Frame f = new Frame("Java"); MyFirstCoffee me = new MyFirstCoffee( ); f.setSize(500,600); f.add(me); f.setVisible(true); me.init( ); me.start( ); } public void update(Graphics ggg ) { System.out.println(" update kk=" + kk++); paint(ggg); } public void repaint( ) { super.repaint( ); System.out.println(" repaint kk=" + kk++); } public void start( ) { System.out.println(" start kk=" + kk++); } public void stop( ) { System.out.println(" stop kk=" + kk++); } public void destroy( ) { System.out.println(" destroy kk=" + kk++); } //////// String s; // global 變數以便後續 function 也可用 public void init ( ) { //通常寫只會做一次的工作 System.out.println(" init kk=" + kk++); try { s= getParameter("MSG"); // 抓 裡的參數 MSG放s }catch(Exception e) { System.out.println("No parameter MSG"); } addMouseListener(this); } ///////////////////////// public void paint (Graphics g) { System.out.println("paint kk=" + kk++); if(s == null ) s= "Ha Ha Ha !\nHee Heeee!"; // 在appletviewer抓不到ㄟ, 阿只好 ...(bug? 可能 HTML沒寫好) g.clearRect(0, 0, getSize().width, getSize().height); g.setColor(Color.blue); // 所有顏色常數是小寫 ! 怪哉? 因為可以改 g.setFont( new Font("Courier", Font.BOLD, 32) ); //setBackground(Color.green); //這是Applet的method g.drawString("Hey You!", 44, 80 ); g.setColor(Color.red); // 所有顏色常數是小寫 ! 變數! g.drawRect(55, 160-32, 20*s.length() , 36); // red g.setColor(Color.yellow); g.fillRect(57, 160-32+2, 20*s.length()-4 , 36-4); /// g.setFont( new Font("Courier", Font.PLAIN, 24) ); g.drawString("s.length()="+s.length(), 60, 220); g.setFont( new Font("Courier", Font.BOLD, 32) ); g.setColor(Color.magenta); // magenta g.drawString(s, 60, 160 ); g.setFont( new Font("標楷體", Font.BOLD, 32) ); g.setColor(Color.orange); // orange g.drawString(s, 60, 280 ); } public void mouseClicked(MouseEvent e) { System.out.println(" kkk kkk kkk"); Color xx[ ] = {Color.red, Color.blue, Color.green}; myColor++; myColor %= xx.length; setBackground( xx[myColor] ); repaint( ); } int myColor=0; public void mousePressed(java.awt.event.MouseEvent e){ } public void mouseReleased(java.awt.event.MouseEvent e){} public void mouseEntered(java.awt.event.MouseEvent e){} public void mouseExited(java.awt.event.MouseEvent e){} int kk=0; }// class