發新話題

[JAVA] 展示Timer事件處理

[JAVA] 展示Timer事件處理

引用:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ui9 extends JFrame implements ActionListener
{
   Image img;
   int imgpt=52;
   int x,y;
   Timer timer;
    public ui9()
    {
        super("滑鼠事件處理");
        // 弄一張圖來娛樂一下
        img=Toolkit.getDefaultToolkit().createImage("bridge/"+imgpt+".GIF");
        //設定滑鼠事件處理程式
        addMouseMotionListener(new procmouse());
        addMouseListener(new checkmouse());
        setSize(600,480);
        x=100;
        y=100;
        timer=new Timer(1000,this);//設定 timer
        timer.start(); //啟動 timer
        show();
    }
    public void paint(Graphics g)
    {
        super.paint(g);
        g.drawImage(img, x,y, this);//跟著滑鼠畫出圖
    }
   //實作 Timer 事件
   /**這個method就是每次timer啟動時呼叫的method**/
    public void actionPerformed(ActionEvent e)
    {
        x=x-20;
        y=y-5;
        if (x<40) x=550;//太左邊
        if (y<100) y=480;//太上面
        repaint(); //由於要呼叫 repaint(),所以必須把呼叫物件指標送過來
    }

  /*****實作滑鼠移動事件處理物件 *******/
    class procmouse extends MouseMotionAdapter
    {
         /*****實作滑鼠移動事件處理方法 *******/
         public void mouseDragged(MouseEvent e)
         {
            //取得X Y座標
            x=e.getX();
            y=e.getY();
            if (y>80) //太上面就不要show了
                repaint();
         }
    }
    /*****實作滑鼠事件處理物件 *******/
    class checkmouse extends MouseAdapter
    {
     /*****實作滑鼠事件處理方法 *******/
         public void mouseClicked(MouseEvent e)
         {
            int button=e.getButton(); //JDK 1.3不認識左右鍵
            if (button==e.BUTTON1) //左鍵換牌
            {
                imgpt=imgpt+1;
                if (imgpt>52) imgpt=10;
            }
            else if (button==e.BUTTON3) //右鍵換牌
            {
                imgpt=imgpt-1;
                if (imgpt<10) imgpt=52;
            }
            //重新抓圖
            img=Toolkit.getDefaultToolkit().createImage("bridge/"+imgpt+".GIF");
            repaint(); //重新顯示一次
         }
    }
    public static void main(String args[]) //程式起點
    {
        ui9 app=new ui9(); //畫圖
        //處理視窗關閉要求
        app.addWindowListener(
             new WindowAdapter()
             {
                public void windowClosing(WindowEvent e)
                {  System.exit(0);}
             });
    }
}

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。