Potrzebuje okodzić funkcję rysowania prostej linii poprzez naciśnięcie, przeciągnięcie i puszczenie. W ten sposób powinna powstawać prosta linia. Mam to zrobione w połowie. Chodzi o to, że przez tą całą drogę, którą przebędzie myszka, rysuje mi proste linie. Jak zrobić, aby była taka jedna linia i podążała za wskaźnikiem myszki.Tak wygląda obecny efekt: https://zapodaj.net/9b7059cecc04a.png.html
A to kod funkcji:
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();
}
});
}
I jeszcze mam pytanie odnośnie tej całej klasy Graphics2D. Na początku programu domyslnie wykonuję ten kod:
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;
}
});
}
Wtedy można rysować linie według własnego upodobania. Natomiast później gdy za pomocą buttona przełączę sobie na rysowanie tych prostych linii, to pozostaje ta metoda 'g2.drawLine(oldX, oldY, currentX, currentY);', tak jakby była aktywna, mimo, że teraz używam metody do rysowania prostych linii.
Większa część kodu: http://pastebin.com/14Bqmzx7