Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-02-2005, 18:15   #1
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
[JAVA] striscie impazzite :(

salve a tutti, mi servirebbe una mano. In quest'applet invece di creare un animazione di punti che si muovono in direzioni casuali, mi crea delle striscie....
sto impazzendo AIUTO
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2005, 18:43   #2
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
Mi sono dimenticato il codice...sono impazzito

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import java.util.Random;
import javax.swing.*;
import java.util.ArrayList;

public class CatchForms extends JApplet
{

private final int AMPIEZZA_CAS = 10;

/*altezza dell'applet*/
private final int ALTEZZA = 400;

/*larghezza dell'applet*/
private final int LARGHEZZA = 400;

/*ritardo impostato nel clock*/
private final int DELAY = 500;

/*direzioni consentite*/
private final int NORD = 0;

private final int NORD_EST = 1;

private final int EST = 2;

private final int SUD_EST = 3;

private final int SUD = 4;

private final int SUD_OVEST = 5;

private final int OVEST = 6;

private final int NORD_OVEST = 7;

/*flag per far partire il gioco*/
private boolean inizioFlag;

/*numero di forme presenti nell applet*/
private int NUMERO_FORME;

//timer che verrà usato per generare il movimento
private Timer timerAnimazione;

/*array in cui ad ogni indice corrisponde una forma*/
private int[] direzione;

private ArrayList<Point> oggetti;



/**
* Richiamato dal browser o dall'appletviewer per informare il JApplet che
* è stato caricato nel sistema. E' sempre richiamato prima che il metodo
* start sia richiamato per la prima volta.
*/
public void init()
{


/*imposta la dimensiona dell'applet*/
setSize(ALTEZZA, LARGHEZZA);

/*imposta il colore dello sfondo*/
setBackground(Color.black);

/*crea un generatore di numeri casuali*/
Random genera = new Random();

/*imposta la flag per la partenza del gioco a false*/
inizioFlag = false;

/*crea un oggetto di tipo Timer*/
timerAnimazione = new Timer (DELAY, new AnimationActionListener() );

/*fai partire il timer*/
timerAnimazione.start();

NUMERO_FORME = 4;

direzione = new int[NUMERO_FORME];

oggetti = new ArrayList<Point> ();


/*crea un ascoltatore di eventi del mouse*/
addMouseListener (new inizioMouseListener () );

/*inizializza le posizioni di ogni forma all'avvio dell'applet*/
for ( int i = 0; i < NUMERO_FORME; i++)
{
oggetti.add (new Point( (10 + i) * AMPIEZZA_CAS, (10 + i) * AMPIEZZA_CAS) );
direzione[i] = Math.abs(genera.nextInt()) % 8;
}

}

/**
* metodo paint dell'applet.
* disegna le figure geometriche nella loro posizione attuale
* @param page l'oggetto Graphics per questo applet
*/
public void paint(Graphics page)
{

if (inizioFlag == true){
int xAux,yAux;
Point puntoAux;

for ( int i = 0; i < oggetti.size (); i++)
{
puntoAux = (Point)oggetti.get (i);
xAux = (int) puntoAux.getX ();
yAux = (int) puntoAux.getY ();

page.setColor(Color.red);
page.fillRect(xAux,yAux,10, 10);
}
}

}


/**
* metodo paint dell'applet.
* disegna le figure geometriche nella loro posizione attuale
* @param page l'oggetto Graphics per questo applet
*/
private class inizioMouseListener implements MouseListener
{

public void mouseEntered (MouseEvent event)
{
inizioFlag = true;
repaint ();
}

public void mousePressed (MouseEvent event) {};
public void mouseClicked (MouseEvent event) {};
public void mouseReleased (MouseEvent event) {};
public void mouseExited (MouseEvent event) {};

}

/**
*classe interna utilizzata per creare l'animazione del movimento delle
*form
*/
private class AnimationActionListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
/*variabile temporanea utilizzata per scambiare le direzioni */
int aux ;

/*per ogni forma modifica la posizione in base alla direzione*/
for ( int i = 0; i < oggetti.size (); i++)
{
int xTemp,yTemp;
Point puntoTemp;
puntoTemp = (Point)oggetti.get (i);
xTemp = (int) puntoTemp.getX ();
yTemp = (int) puntoTemp.getY ();

/*muovi nella direzione scelta*/
switch(direzione[i])
{
case NORD:
{
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case EST:
{
xTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD:
{
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case OVEST:
{
xTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case NORD_EST:
{
xTemp += AMPIEZZA_CAS;
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD_EST:
{
xTemp += AMPIEZZA_CAS;
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD_OVEST:
{
xTemp -= AMPIEZZA_CAS;
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case NORD_OVEST:
{
xTemp -= AMPIEZZA_CAS;
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;
}

}

repaint();
}


}


}
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 09:06   #3
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
dai aiutatemi! ... ditemi almeno se posso udsare gli arraylist o se con questi arraylist non fa
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 10:21   #4
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Vedi delle "linee" perchè non ridisegni lo sfondo e ogni volta aggiungi i punti senza cancellare quelli del frame precedente; questo succede perchè estendi JApplet, la quale ridefinisce il metodo update di Component eliminando il ridisegno del background.

Una prima soluzione molto semplice è cambiare
Codice:
public class CatchForms extends JApplet
con
Codice:
public class CatchForms extends Applet
e vedi che non hai più il problema.

Se invece ti serve che sia una JApplet puoi ridefinire update aggiungendo questo
Codice:
    public void update( Graphics page )
    {
        page.setColor( getBackground() );
        page.fillRect( 0 , 0 , page.getClipBounds().width , page.getClipBounds().height );
        page.setColor( getForeground() );
        paint( page );
    }
anche così funziona; non so quale dei due sia più efficiente però perchè non conosco bene JApplet, forse c'è un modo per fargli ridisegnare il background senza dover ridefinire il metodo.
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 10:37   #5
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
end.is.forever: GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE 10000000000000000000000
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Le sonde spaziali ESA ExoMars e Mars Exp...
Roscosmos: static fire per i propulsori ...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v