Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] disegnare a mano libera...

    Ho scritto questo programma per disegnare a mano libera con il mouse:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    public class Disegni2 extends Frame {
    	CanvasUtente tela = new CanvasUtente();
    	public Disegni2() {
    		super ("Disegni a mano libera");
    		setBounds (50, 50, 700, 450);
    		
    		setLayout (new BorderLayout());
    		
    		// Configurazione e inserimento del supporto di tracciatura
    		tela.setBackground (Color.green);
    		tela.setForeground (Color.red);
    		add (tela, "Center");
    		
    		// Creazione del pannello di controllo
    		Panel controlli = new Panel();
    		controlli.setBackground (Color.blue);
    		Button bClear = new Button ("Clear");
    		bClear.addActionListener ( new ActionListener() {
    			public void actionPerformed (ActionEvent e) {
    				tela.repaint();
    			}
    		});
    		controlli.add (bClear);
    		add (controlli, "South");
    		
    		setVisible (true);
    	}
    }
    
    
    class CanvasUtente extends Canvas {
    	private int lastX, lastY;
    	public CanvasUtente () {
    		super();
    		AscMsDrag ascDrag = new AscMsDrag ();
    		addMouseMotionListener (ascDrag);
    		AscMsClick ascClick = new AscMsClick ();
    		addMouseListener (ascClick);
    	}
    	class AscMsClick extends MouseAdapter {
    	
    		MouseAdapter adpMsClick = (new MouseAdapter(){
    			public void mousePressed (MouseEvent e) {
    				lastX = e.getX();
    				lastY = e.getY();	
    			}
    		});	
    	
    	}
    	class AscMsDrag extends MouseMotionAdapter {
    	
    		MouseMotionAdapter adpMsDrag = (new MouseMotionAdapter() {
    			public void mouseDragged (MouseEvent e) {
    				int x = e.getX();
    				int y = e.getY();
    				Graphics g2 = getGraphics();
    				g2.drawLine(lastX, lastY, x, y);
    				lastX = x;
    				lastY = y;
    			}
    		});
    	}
    }
    non funziona!!!

    perchè?

    Grazie
    Wami agency
    Io odio tutti gli up-loads!

  2. #2
    Ho risoloto:

    codice:
    class CanvasUtente extends Canvas {
    	private int lastX, lastY;
    	public CanvasUtente () {
    		super();
    		AscMsDrag ascDrag = new AscMsDrag ();
    		addMouseMotionListener (ascDrag);
    		
    		ascMsClick ascClick = new ascMsClick ();
    		addMouseListener (ascClick);
    	}
    	class ascMsClick extends MouseAdapter {
    
    			public void mousePressed (MouseEvent e) {
    				lastX = e.getX();
    				lastY = e.getY();	
    				
    			}
    	
    	}
    	class AscMsDrag extends MouseMotionAdapter {
    
    			public void mouseDragged (MouseEvent e) {
    				int x = e.getX();
    				int y = e.getY();
    				Graphics g2 = getGraphics();
    				g2.drawLine(lastX, lastY, x, y);
    				lastX = x;
    				lastY = y;
    				System.out.println(lastX+" "+lastY);
    			}
    	}
    }
    Wami agency
    Io odio tutti gli up-loads!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.