import java.applet.*; import java.util.*; import java.awt.*; import java.awt.event.*; /* * 鼠标控制程序 * 一.能拖动界面上的图片移动 * 步骤 * 1.鼠标点击拖动 * 2.图片跟着动 * 3.鼠标放开 * 4.图片停止动 */ public class T7 extends Applet implements Runnable,MouseListener,MouseMotionListener { Thread tt; int AppletWidth,AppletHeight, mX,mY, X=0,Y=0, imgW = 40, imgH = 40; Image OffScreen,player1; Graphics drawOffScreen; MediaTracker MT; boolean active = false, visible, move; public void init() { addMouseListener(this); addMouseMotionListener(this); MT = new MediaTracker(this); resize(800,600); AppletWidth = getSize().width; AppletHeight = getSize().height; player1 = getImage(getDocumentBase(),"a1.GIF"); MT.addImage(player1,0); try{ MT.waitForAll(); }catch(Exception e){} OffScreen = createImage(AppletWidth,AppletHeight); drawOffScreen = OffScreen.getGraphics(); } public void start(){ tt = new Thread(this); tt.start(); } public void stop(){tt=null;} public void paint(Graphics g) { drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight); //drawOffScreen.drawImage(player1,0,0,this); drawOffScreen.drawImage(player1,X,Y,this); g.drawImage(OffScreen,0,0,this); } public void run() { while(tt !=null) { repaint(); try{ Thread.sleep(33); }catch(Exception e){} /*if(active) { X = mX; Y = mY; }*/ } } public void update(Graphics g){paint(g);} public void mouseExited(MouseEvent e) { //System.out.println("mouseExited"+e.getX()); //System.out.println("mouseExited"+e.getY()); } public void mouseClicked(MouseEvent e) { //mX = e.getX(); //mY = e.getY(); //System.out.println("mouseClicked"+e.getX()); //System.out.println("mouseClicked"+e.getY()); //System.out.println(e.getButton()); /*if((e.getX() > X) && (e.getX() < (X + imgW)) && (e.getY() > Y) && (e.getY() < (Y + imgH)) && !active) { active = true; }else active = false;*/ } public void mouseEntered(MouseEvent e) { //System.out.println("mouseEntered"+e.getX()); //System.out.println("mouseEntered"+e.getY()); } public void mousePressed(MouseEvent e) { //System.out.println("mousePressed"+e.getX()); //System.out.println("mousePressed"+e.getY()); } public void mouseReleased(MouseEvent e) { //System.out.println("mouseReleased"+e.getX()); //System.out.println("mouseReleased"+e.getY()); } public void mouseMoved(MouseEvent e) { //System.out.println("mouseMoved"+e.getX()); //System.out.println("mouseMoved"+e.getY()); /*if(active) { X = e.getX(); Y = e.getY(); }*/ } public void mouseDragged(MouseEvent e) { /*if(e.getButton() == 0) { System.out.println("mouseDragged1"+e.getX()); System.out.println("mouseDragged1"+e.getY()); } System.out.println(e.getButton()); System.out.println(MouseEvent.BUTTON1); System.out.println(MouseEvent.BUTTON2); System.out.println(MouseEvent.BUTTON3);*/ //System.out.println(pickit(e.getX(),e.getY())); if(pickit(e.getX(),e.getY())) { X = (e.getX()-20); Y = (e.getY()-20); } } public boolean pickit(int mX,int mY) { if((mX > X) && (mX < (X + imgW)) && (mY > Y) && (mY < (Y + imgH)) //&& !active ) { return true; }else return false; } } /* public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void mouseDragged(MouseEvent e){} */