Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.22 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Image;
  6. import java.awt.RenderingHints;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.MouseAdapter;
  10. import java.awt.event.MouseEvent;
  11. import java.awt.event.MouseMotionAdapter;
  12.  
  13. import javax.swing.JButton;
  14. import javax.swing.JComponent;
  15. import javax.swing.JFrame;
  16.  
  17. public class Teikna {
  18.   public static void main(String[] args) {
  19.     JFrame frame = new JFrame();
  20.     final DrawPad drawPad = new DrawPad();
  21.     frame.add(drawPad, BorderLayout.CENTER);
  22.     JButton clearButton = new JButton("Clear");
  23.     clearButton.addActionListener(new ActionListener() {
  24.       public void actionPerformed(ActionEvent e) {
  25.         drawPad.clear();
  26.       }
  27.     });
  28.     frame.add(clearButton, BorderLayout.SOUTH);
  29.     frame.setSize(280, 300);
  30.     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  31.     frame.setVisible(true);
  32.   }
  33.  
  34. }
  35. class DrawPad extends JComponent {
  36.   Image image;
  37.   Graphics2D graphics2D;
  38.   int currentX, currentY, oldX, oldY;
  39.   public DrawPad() {
  40.     setDoubleBuffered(false);
  41.     addMouseListener(new MouseAdapter() {
  42.       public void mousePressed(MouseEvent e) {
  43.         oldX = e.getX();
  44.         oldY = e.getY();
  45.       }
  46.     });
  47.     addMouseMotionListener(new MouseMotionAdapter() {
  48.       public void mouseDragged(MouseEvent e) {
  49.         currentX = e.getX();
  50.         currentY = e.getY();
  51.         if (graphics2D != null)
  52.           graphics2D.drawLine(oldX, oldY, currentX, currentY);
  53.         repaint();
  54.         oldX = currentX;
  55.         oldY = currentY;
  56.       }
  57.     });
  58.   }
  59.  
  60.   public void paintComponent(Graphics g) {
  61.     if (image == null) {
  62.       image = createImage(getSize().width, getSize().height);
  63.       graphics2D = (Graphics2D) image.getGraphics();
  64.       graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  65.           RenderingHints.VALUE_ANTIALIAS_ON);
  66.       clear();
  67.     }
  68.     g.drawImage(image, 0, 0, null);
  69.   }
  70.  
  71.   public void clear() {
  72.     graphics2D.setPaint(Color.white);
  73.     graphics2D.fillRect(0, 0, getSize().width, getSize().height);
  74.     graphics2D.setPaint(Color.black);
  75.     repaint();
  76.   }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement