我想創建一個程序,我可以畫一個徒手畫。 我創建了一個點數組,它保存了鼠標的當前點。 問題是當我釋放鼠標,然後在另一個位置再次按下它時,它會在釋放點與按下的點之間繪製線條。 我應該添加或更改什麼?FreeHand drawing Java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Mouse extends JPanel implements MouseListener, MouseMotionListener {
private int index = 0;
private Point[] arr = new Point[100000];
public Mouse(String name) {
super();
index = 0;
this.addMouseListener(this);
this.addMouseMotionListener(this);
JFrame fr = new JFrame(name);
fr.add(this);
fr.setSize(500, 500);
setBackground(Color.green);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
for (int i = 0; i < index - 1; i++)
g.drawLine(arr[i].x, arr[i].y, arr[i + 1].x, arr[i + 1].y);
}
public void mouseDragged(MouseEvent e) {
arr[index] = new Point(e.getX(), e.getY());
index++;
System.out.println(index);
repaint();
}
public void mousePressed(MouseEvent e) {
arr[index] = new Point(e.getX(), e.getY());
index++;
System.out.println(index);
repaint();
}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {}
public static void main(String[] args) {
Mouse mouse = new Mouse("Mouse");
}
}
有擡筆功能? – JFA