Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BasicStroke;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseMotionAdapter;
- import java.awt.geom.Line2D;
- import javax.swing.JPanel;
- public class PanelPaint extends JPanel {
- private static final long serialVersionUID = 1L;
- static PanelPaint panelPaint;
- public PanelPaint() {
- panelPaint = this;
- addMouseListener("PEN");
- }
- private Image image;
- private static Graphics2D g2;
- @Override
- public void paintComponent(Graphics g) {
- if(image == null) {
- image = createImage(getWidth(), getHeight());
- g2 = (Graphics2D)image.getGraphics();
- clear();
- }
- g2.setStroke(strokeSize);
- g.drawImage(image, 0, 0, null);
- }
- public void clear() {
- g2.setPaint(Color.WHITE);
- g2.fillRect(0, 0, getWidth(), getHeight());
- g2.setPaint(Color.BLACK);
- }
- private static int oldX, oldY, currentX, currentY;
- static Point point1, point2;
- static BasicStroke strokeSize = new BasicStroke(1);
- static public void addMouseListener(String type) {
- if(type.equals("PEN")) {
- panelPaint.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- oldX = e.getX();
- oldY = e.getY();
- }
- });
- panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
- @Override
- public void mouseDragged(MouseEvent e) {
- currentX = e.getX();
- currentY = e.getY();
- strokeSize = new BasicStroke(1);
- g2.drawLine(oldX, oldY, currentX, currentY);
- panelPaint.repaint();
- oldX = currentX;
- oldY = currentY;
- }
- });
- } else if(type.equals("MARKER")) {
- panelPaint.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- oldX = e.getX();
- oldY = e.getY();
- }
- });
- panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
- @Override
- public void mouseDragged(MouseEvent e) {
- currentX = e.getX();
- currentY = e.getY();
- strokeSize = new BasicStroke(10);
- g2.drawLine(oldX, oldY, currentX, currentY);
- panelPaint.repaint();
- oldX = currentX;
- oldY = currentY;
- }
- });
- }
- else if(type.equals("LINE")) {
- panelPaint.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- point1 = e.getPoint();
- }
- });
- panelPaint.addMouseMotionListener(new MouseMotionAdapter() {
- @Override
- public void mouseDragged(MouseEvent e) {
- point2 = e.getPoint();
- g2.draw(new Line2D.Double(point1, point2));
- panelPaint.repaint();
- }
- });
- }
- }
- static public void setColor(Color color) {
- g2.setPaint(color);
- }
- }
Add Comment
Please, Sign In to add comment