Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- JFrame frame = new JFrame("Lines");
- frame.add(new JComponent() {
- private Shape line = null;
- {
- line = new Line2D.Double(100, 100, 200, 200);
- prevPoint = new Point();
- newPoint = new Point();
- MouseAdapter mouseAdapter = new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- prevPoint = e.getPoint();
- System.out.println("Prev Point=" + prevPoint.toString());
- repaint();
- }
- @Override
- public void mouseDragged(MouseEvent e) {
- int dx = 0;
- int dy = 0;
- dx = (int) (prevPoint.x - e.getPoint().getX());
- dy = (int) (prevPoint.y - e.getPoint().getY());
- Line2D shape = (Line2D) line;
- int x1 = (int) (shape.getX1() - dx);
- int y1 = (int) (shape.getY1() - dy);
- int x2 = (int) (shape.getX2() - dx);
- int y2 = (int) (shape.getY2() - dy);
- Point startPoint = new Point(x1, y1);
- Point endPoint = new Point(x2, y2);
- if (shape != null) {
- shape.setLine(startPoint, endPoint);
- prevPoint = e.getPoint();
- repaint();
- }
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- repaint();
- }
- };
- addMouseListener(mouseAdapter);
- addMouseMotionListener(mouseAdapter);
- }
- @Override
- protected void paintComponent(Graphics g) {
- Graphics2D g2d = (Graphics2D) g;
- g2d.setPaint(Color.BLUE);
- g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- if (line != null) {
- g2d.draw(line);
- }
- }
- });
- frame.setSize(650, 400);
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement