import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JPanel; public class JCanvas extends JPanel implements MouseListener, MouseMotionListener { private int x1 = -1, y1 = -1, x2 = -1, y2 = -1; public JCanvas() { this.setPreferredSize(new Dimension(100, 100)); this.addMouseListener(this); this.addMouseMotionListener(this); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(x1, y1, x2, y2); } @Override public void mousePressed(MouseEvent e) { x1 = e.getX(); x2 = x1; y1 = e.getY(); y2 = y1; repaint(); } @Override public void mouseDragged(MouseEvent e) { x2 = e.getX(); y2 = e.getY(); repaint(); } @Override public void mouseReleased(MouseEvent e) { x2 = e.getX(); y2 = e.getY(); repaint(); } @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mouseMoved(MouseEvent e) { } }