Как я должен разделить соединенные линии для моего приложения для рисования в Java
Я новичок в использовании краски и линий в Java, извините, если ответ очевиден. Тем не менее, я хотел бы, чтобы мои линии были гладкими, и именно поэтому у меня есть соединение "Круги", чтобы создать линию с закругленными углами, проблема в том, что он не распознает, когда мышь отпущена, поэтому, когда я пытаюсь написать другое письмо соединяет две точки через осыпь. Каков наилучший способ запрограммировать мое приложение, чтобы иметь плавные линии без подключения?
package pac;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
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 java.util.ArrayList;
import javax.swing.*;
public class Frame extends JPanel{
private final ArrayList<Point> point = new ArrayList<>();
public Frame() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent event) {
point.add(event.getPoint());
repaint();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent event) {
point.add(event.getPoint());
repaint();
}
});
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(new Color(0, 0, 128));
g2.setStroke(new BasicStroke(15f,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND));
// if(!mouserelased) {
for (int i = 1; i < point.size(); i++)
g2.draw(new Line2D.Float(point.get(i-1), point.get(i)));
// }
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.add(new Frame());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(800, 600);
f.setVisible(true);
}
}