Home Java Java-tips 45examples 50mouse Java: Example - Scribble

Ask Questions?

View Latest Questions

Advertisement


 
 

Java: Example - Scribble
Posted on: April 17, 2011 at 12:00 AM
This page discusses - Java: Example - Scribble

Java Notes

Example - Scribble

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61 
 62 
 63 
 64 
 65 
 66 
 67 
 68 
 69 
 70 
 71 
 72 
 73 
 74 
 75 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.ArrayList;
/** ScribbleGUI.java
    @author Fred Swartz
    @version 2003-06 (Pavlov Czecho) */
class ScribbleGUI extends JPanel{
    private int last_x, last_y;   // last x,y position of the mouse
    private ArrayList    _points = new ArrayList(1000);
    private DrawingPanel _drawing = new DrawingPanel();

    public ScribbleGUI() {  //================================== constructor
        // Create and add a button to the Panel
        JButton b = new JButton("Clear");
        b.addActionListener(new ClearListener());

        //--- Layout components
        this.setLayout(new BorderLayout());
        this.add(b, BorderLayout.NORTH);  // add the button to the applet
        this.add(_drawing, BorderLayout.CENTER);
    }// end init
     
    ////////////////////////////////////////////// inner class ClearListener
    private class ClearListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            _points.clear();
            _drawing.repaint();
        }//end actionPerformed
    }//end class ClearListener

    //////////////////////////////////////////////// inner class DrawingPanel
    private class DrawingPanel extends JPanel implements MouseListener, 
                                                 MouseMotionListener {
        //====================================================== constructor
        public DrawingPanel() {
            setPreferredSize(new Dimension(300, 300));
            setBackground(Color.white);
            addMouseMotionListener(this);
            addMouseListener(this);
        }//end constructor
        
        public void clear() {
            _points.clear();
            this.repaint();
        }//end clear

        //==================================================x paintComponent
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            for (int i=0; i < _points.size()-1; i++) {
                Point previous = (Point)_points.get(i);
                Point next     = (Point)_points.get(i+1);
                g.drawLine(previous.x, previous.y, next.x, next.y);
            }
        }//end paintComponent

        public void mousePressed(MouseEvent e) {
            _points.add(e.getPoint());
            repaint();
        }//end mousePressed

        public void mouseDragged(MouseEvent e) {
            _points.add(e.getPoint());
            repaint();
        }//end mouseDragged

        //--- Ignore these events
        public void mouseReleased(MouseEvent e) { }
        public void mouseClicked (MouseEvent e) { }
        public void mouseEntered (MouseEvent e) { }
        public void mouseExited  (MouseEvent e) { }
        public void mouseMoved   (MouseEvent e) { }
    }//end class DrawingPanel
}//end class ScribbleGUI
Copyleft 2004 Fred Swartz MIT License
Advertisement


DMCA.com