Guest User

paint

a guest
Nov 1st, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.92 KB | None | 0 0
  1. import java.awt.BasicStroke;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Image;
  6. import java.awt.Point;
  7. import java.awt.event.MouseAdapter;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.event.MouseMotionAdapter;
  10. import java.awt.geom.Line2D;
  11.  
  12. import javax.swing.JPanel;
  13.  
  14. public class PanelPaint extends JPanel {
  15.     private static final long serialVersionUID = 1L;
  16.  
  17.     static PanelPaint panelPaint;
  18.    
  19.     public PanelPaint() {
  20.         panelPaint = this;
  21.        
  22.         addMouseListener("PEN");
  23.     }
  24.    
  25.     private Image image;
  26.     private static Graphics2D g2;
  27.    
  28.     @Override
  29.     public void paintComponent(Graphics g) {
  30.         if(image == null) {
  31.             image = createImage(getWidth(), getHeight());
  32.             g2 = (Graphics2D)image.getGraphics();
  33.            
  34.             clear();
  35.         }
  36.        
  37.         g2.setStroke(strokeSize);
  38.         g.drawImage(image, 0, 0, null);
  39.     }
  40.    
  41.     public void clear() {
  42.         g2.setPaint(Color.WHITE);
  43.         g2.fillRect(0, 0, getWidth(), getHeight());
  44.         g2.setPaint(Color.BLACK);
  45.     }
  46.    
  47.     private static int oldX, oldY, currentX, currentY;
  48.     static Point point1, point2;
  49.    
  50.     static BasicStroke strokeSize = new BasicStroke(1);
  51.    
  52.     static public void addMouseListener(String type) {
  53.         if(type.equals("PEN")) {
  54.             panelPaint.addMouseListener(new MouseAdapter() {
  55.                 @Override
  56.                 public void mousePressed(MouseEvent e) {
  57.                     oldX = e.getX();
  58.                     oldY = e.getY();
  59.                 }
  60.             });
  61.             panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
  62.                 @Override
  63.                 public void mouseDragged(MouseEvent e) {
  64.                     currentX = e.getX();
  65.                     currentY = e.getY();
  66.  
  67.                     strokeSize = new BasicStroke(1);
  68.                     g2.drawLine(oldX, oldY, currentX, currentY);
  69.                    
  70.                     panelPaint.repaint();
  71.                    
  72.                     oldX = currentX;
  73.                     oldY = currentY;
  74.                 }
  75.             });
  76.         } else if(type.equals("MARKER")) {
  77.             panelPaint.addMouseListener(new MouseAdapter() {
  78.                 @Override
  79.                 public void mousePressed(MouseEvent e) {
  80.                     oldX = e.getX();
  81.                     oldY = e.getY();
  82.                 }
  83.             });
  84.             panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
  85.                 @Override
  86.                 public void mouseDragged(MouseEvent e) {
  87.                     currentX = e.getX();
  88.                     currentY = e.getY();
  89.                    
  90.                     strokeSize = new BasicStroke(10);
  91.                     g2.drawLine(oldX, oldY, currentX, currentY);
  92.                    
  93.                     panelPaint.repaint();
  94.                    
  95.                     oldX = currentX;
  96.                     oldY = currentY;
  97.                 }
  98.             });
  99.         }
  100.          else if(type.equals("LINE")) {
  101.                 panelPaint.addMouseListener(new MouseAdapter() {
  102.                     @Override
  103.                     public void mousePressed(MouseEvent e) {
  104.                         point1 = e.getPoint();
  105.                     }
  106.                 });
  107.                 panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
  108.                     @Override
  109.                     public void mouseDragged(MouseEvent e) {
  110.                         point2 = e.getPoint();
  111.                        
  112.                         g2.draw(new Line2D.Double(point1, point2));
  113.                        
  114.                         panelPaint.repaint();
  115.                     }
  116.                 });
  117.             }
  118.     }
  119.    
  120.     static public void setColor(Color color) {
  121.         g2.setPaint(color);
  122.     }
  123. }
Add Comment
Please, Sign In to add comment