pobrac wspolrzedna klikniecia i narysowac okrag

0

Witam szystkich

Mam problem z pobraniem współrzędnej kliknięcia i wykorzystaniem tego do narysowania np okręgu na pobranej wpółrzędnej. Przepraszam za tak proste pytanie ale.. znalazłem takie nasłuchiwacze do rysowania i przechwytywania klikniecia myszy i nie wiem jak je połączyć

public class HelloWorldSWT {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		// TODO Auto-generated method stub

		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setText("Hello world!");
		shell.setLayout(new FillLayout());
		Canvas canvas = new Canvas(shell, SWT.NONE);
		canvas.addPaintListener(new PaintListener() {
		      public void paintControl(PaintEvent e) {

		        e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_RED));
		        e.gc.drawOval(100, 20, 100, 50);
		        
		      }
		    });
		shell.open();
		shell.addMouseListener(new MouseListener() {
		      public void mouseDown(MouseEvent e) {
		        System.out.println("Mouse Button Down at:" + e.x + " " + e.y);
		  
		        
		      }

		      public void mouseUp(MouseEvent e) {
		        System.out.println("Mouse Button up at:" + e.x + " " + e.y);
		        System.out.println(e.button);
		        
		      }

		      public void mouseDoubleClick(MouseEvent e) {
		        System.out.println("Mouse Double Clicked at:" + e.x + " " + e.y);
		      }
		      
		    });
		
		while (!shell.isDisposed()) {
		if (!display.readAndDispatch()) display.sleep();
		}
		display.dispose();
	}

}

próbowałem pobrać współrzędne za pomocą dodatkowej zmiennej ale nie mogę zrobic przypisania bo pole ktore chcĘ skopjowac jest static i kompilator zglasza blad

0

Moze tak:

Pobranie klikniecia:

...
int x,y;
...
public void mousePressed(MouseEvent e) {
     x=e.getX();
     y=e.getY();
     System.out.println("Wspolrzedne klikniecia " + x + " " + y);
}

i rysowanie:

public void paint(Graphics g){
     g.drawOval(x,y,30,30);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1