Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Rysowanie prostej linii na zasadzie "drag and drop" klasą Graphics2D

$
0
0

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

 


Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra