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