import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class MouseDraw extends JApplet implements MouseMotionListener, ActionListner { private int startX, startY, endX, endY; private JPanel topPanel; private JButton clearButton; private CenterPanel centerPanel; public void init( ) { resize( 400, 400 ); endX = 0; endY = 0; centerPanel = new CenterPanel( ); centerPanel.addMouseMotionListener( this ); clearButton = new JButton( " Clear " ); clearButton.addActionListener( this ); clearButton.setBorder( BorderFactory.createRaisedBevelBorder( ) ); topPanel = new JPanel( ); topPanel.setBackground( new Color( 200, 200, 255 ) ); topPanel.add( clearButton ); Container contentpane = getContentPane() ; contentPane.add( topPanel, Borderlayout.NORTH ); contentPane.add( centerPanel, BorderLayout.CENTER ); } public void paint( Graphics g ){ } public void mouseDragged( MouseEvent e ) { // startX = endX; // startY = endY; // // endX = e.getX( ); // endY = e.getY( ); // // centerPanel.draw( ); } public void mouseMoved( MouseEvent e ){ startX = endX; startY = endY; endX = e.getX( ); endY = e.getY( ); centerPanel.draw( ); } public void actionPerformed( ActionEvent e ){ centerPanel.clearPanel( ); } public class CenterPanel extends JPanel { public void paintComponent( Graphics g ){ super.paintComponent( g ); setbackground( Color.white ); } public void clearPanel( ) { repaint( ); endX = 0; endY = 0; showStatus( "Moving to " + endX + ", " + endY ); } public void draw( ){ Graphics g = getGraphics( ); g.drawLine( startX, startY, endX, endY ); showStatus( "Moving to " + endX + ", " + endY ); } } }