next up previous
Next: 5 Swingパッケージ Up: 4 Mouseイベント の処理 Previous: 4.1 MouseTest.html

4.2 MouseTest.java

/**
 * MouseTest.java
 */

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.Graphics;
import java.lang.Math;

public class MouseTest
    extends java.applet.Applet
    implements MouseListener,
               MouseMotionListener {

    int mx, my;

    public void init() {
        setSize(500, 500);
        addMouseListener(this);
        addMouseMotionListener(this);
    }

    public void destroy() {
        removeMouseListener(this);
        removeMouseMotionListener(this);
    }

    public void paint(Graphics g) {
        g.drawRect(0, 0,
                   getSize().width - 1,
                   getSize().height - 1);
        g.drawRect(mx, my,
                   (getSize().width/10) - 1,
                   (getSize().height/10) - 1);
        g.drawString(toString(),20,20);
        g.drawString(paramString(),20,40);
    }

    /*
     * MouseMotionListner methods
     */
    public void mouseDragged(MouseEvent e) {
        mx = e.getX();
        my = e.getY();
        repaint();
    }

    public void mouseMoved(MouseEvent e) {
        mx = (int)(Math.random()*1000) %
            (getSize().width -
                (getSize().width/10));
        my = (int)(Math.random()*1000) %
            (getSize().height -
                (getSize().height/10));
        repaint();
    }

    /*
     * MouseListner methods
     */
    public void mouseClicked(MouseEvent e) {
        play(getCodeBase(),
        "sounds/tiptoe.thru.the.tulips.au");
    }
    public void mouseEntered(MouseEvent e) {
        mx = e.getX();
        my = e.getY();
        repaint();
    }
    public void mouseExited(MouseEvent e) {
        mx = e.getX();
        my = e.getY();
        repaint();
    }
    public void mousePressed(MouseEvent e) {
        mx = 0;
        my = 0;
        repaint();
    }

    public void mouseReleased(MouseEvent e) {
        mx = e.getX();
        my = e.getY();
        repaint();
    }

}


generated through LaTeX2HTML. M.Inaba 平成18年5月7日