Small Java Problem (MouseListener)

Soldato
Joined
26 Aug 2005
Posts
6,901
Location
London
Hey guys,

Am trying to add a pause feature so if you user clicks anywhere, the ball will stop and will continue if you press it again. However am having trouble. Basically it doesn't pause at at when I do click anyway. Any ideas?

Here's my code:

Code:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
	
public class BatBallApplet extends Applet {

		public Rectangle box;
		private int x = 40, y = 53, size = 40;
		private int xd = 1, yd = 1;
		private boolean inPlay = true;
		
			class MyMouseMotionListener implements MouseMotionListener, MouseListener {	
				
				public void mouseMoved(MouseEvent event) {
					box = new Rectangle(event.getX(),getHeight()/9*8,50,20);
					repaint();
				}
				public void mouseDragged(MouseEvent event) {}
				public void mousePressed(MouseEvent event) {
					inPlay = !inPlay;
				}
					
				public void mouseReleased(MouseEvent event) {}
				public void mouseClicked(MouseEvent event) {}
				public void mouseEntered(MouseEvent event) {}
				public void mouseExited(MouseEvent event) {}
			}
			
			public BatBallApplet()
			{
				MyMouseMotionListener listener = new MyMouseMotionListener();
				addMouseMotionListener(listener);

			}
			
			public void paint(Graphics g) {
				
				Graphics2D g2 = (Graphics2D)g;
					if(box!=null)
						g2.draw(box);
					
					if(inPlay)
					{
					
						Ellipse2D.Double circle = new Ellipse2D.Double(x,y,size,size);
						g2.draw(circle);
						
						if( x==0 || x== getWidth() - size ) {
							xd *= -1;
						}
						if( y==0 || y == getHeight() - size ) {
							yd *= -1;
						}
						
						x+= xd;
						y += yd;
						
							try {
								Thread.sleep(2);	
							}
								catch(Exception e){
								}
									repaint();
					}	
			}
			
}
 
Last edited:
Back
Top Bottom