Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JAVA] Disegnare cerchi per ogni evento mousePressed

    Ciao! ho un piccolo problema: sto progettando un'interfaccia che faccia comparire un determinato numero di cerchi nello schermo.

    I cerchi devono essere disegnati per ogni evento "mousePressed" finchè non viene raggiunto il valore MAX

    il controllo per questo evento va inserito nel metodo "draw" o nel metodo "mousePressed()" ??
    -Montanelli-: Ma lei evadeva quasi sempre, no?

    -Mesina-: Sì, ho la fortuna di avere i polsi più grossi delle mani...

  2. #2
    Dipende da quello che hai messo nel metodo draw e nell'altro...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    nel metodo mousePressed ho inserito


    codice:
    public void mousePressed(MouseEvent e)
    	{
    		Point p = new Point(e.getX(),e.getY());
    		caricatore.addFirst(p);
    		while(caricatore.size() < MAX_COLPI)
    			caricatore.addFirst(p);
    	}
    mentre nel metodo draw:

    codice:
    public synchronized void draw(Graphics2D g)
    	{
    		int count = caricatore.size();
    		Window window = screen.getFullScreenWindow();
    		
    		g.setColor(window.getBackground());
    		g.fillRect(0,0,screen.getWidth(),screen.getHeight());
    		g.setColor(window.getForeground());
    		
    		for(int i=0; i<count; i++)
    		{
    			Point p = (Point)caricatore.get(i);
    			g.fillOval(p.x, p.y, 12,12);
    		}				
    	}
    ho costruito il seguente codice ma in questo modo costruisce un numero infinito di cerchi.
    -Montanelli-: Ma lei evadeva quasi sempre, no?

    -Mesina-: Sì, ho la fortuna di avere i polsi più grossi delle mani...

  4. #4
    Gia' che ti trovi, posta anche addFirst()

    P.S. Sei sicuro che qui

    codice:
    		while(caricatore.size() < MAX_COLPI)
    			caricatore.addFirst(p);
    vada addFirst()? Mi baso solo sul nome che gli hai dato, eh...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  5. #5
    addFirst è un metodo appartenente a java.util.LinkedList

    tutti i metodi di tale classe sono descritti in

    http://java.sun.com/j2se/1.4.2/docs/...inkedList.html

    ... ho dimenticato di specificarlo...
    -Montanelli-: Ma lei evadeva quasi sempre, no?

    -Mesina-: Sì, ho la fortuna di avere i polsi più grossi delle mani...

  6. #6
    Ah, ok... Dal testo non era chiaro di che tipo fosse caricatore...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  7. #7
    Un'altra cosa: non mi e' chiaro l'utilita' del while invece di un semplice if...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  8. #8
    codice:
    public void mousePressed(MouseEvent e)
    	{
    		Point p = new Point(e.getX(),e.getY());
               // qui fai l'inserimento indipendentemente dal valore di size()!!!
    		caricatore.addFirst(p); 
    		while(caricatore.size() < MAX_COLPI)
    			caricatore.addFirst(p);
    	}
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  9. #9
    hai ragione!!!! ma dove ho la testa!!

    (p.s. la while era un rimasuglio di un tentativo precedente.. meglio una if!)

    ora vengono creati un max di 30 cerchi.. ma se voglio che vengano disegnati più cerchi (sempre sino a un max di 30) tenendo premuto il pulsante del mouse, come devo fare??

    con il precedente codice per un click equivale un cerchio e non di piu!
    -Montanelli-: Ma lei evadeva quasi sempre, no?

    -Mesina-: Sì, ho la fortuna di avere i polsi più grossi delle mani...

  10. #10
    Potresti usare un Timer.
    La pressione del mouse (mousePressed) lo attiva e il rilascio (mouseReleased) lo disattiva. Il Timer aggiunge un elemento a caricatore ogni volta che esegue; tu decidi l'intervallo di tempo fra un'esecuzione e l'altra.
    Probabilmente c'e' una soluzione piu' semplice, che non fa uso del multitasking, ma ora non mi viene...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

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.