Newsgroup: it.comp.java
Titolo: Buffering

Come č possibile eseguire il doppio-buffering di una immagine prima di
blittarla su schermo ed evitare cosě lo sfarfallio? Io uso la classe
BufferedImage e mi trovo bene, ma il browser protesta. Ho provato ad
aggiungerli la classe, ma lui protesta per un altro motivo. Possibile che
un'applet non possa gestire il doppio-buffering??



il browser protesta perche' BufferedImage 
esiste a partire da jdk 1.2 (se non erro)
prova in questo modo :
private Image buffer;
private Graphics graphics;
...
public void update(Graphics g)
{
	paint(g);
}
public void paint(Graphics g)
{
	if (buffer == null)
	{
		int w = getSize().width;
		int h = getSize().height;
		buffer = createImage(w,h);
 
		graphics = buffer.getGraphics();
       	}
	disegna(graphics);
 
	g.drawImage(buffer,0,0,this);
}
private void disegna(Graphics g)
{
	..disegni quello che vuoi...
}
se non basta ho altre varianti :)
ciao_O
http://digilander.iol.it/schiele

Ciao Andrea, spero che sarai così gentile da darmi dei consigli per
risolvere il mio
problema.
Vorrei capire come posso disegnare su un pannello, usando magari le funzioni
2D di Java, similundo in piccolo, quello che si fa con un normale progreamma
di disegno.
Un'altra cosa, volevo capire come caricare degli sprite in memoria e poterli
gestire tipo videogioco.
Esiste la possibilità di scaricare immagini in blocco senza dover starle a
scrivere punto per punto???
Ho creato una classe che mi permette di leggere e scrive le BMP, ma il mio
problema è che non so come visualizzarle.
Come faccio a convincere questa merda di pseudo linguaggio che deve farmi
una copia dalla memoria al video???
Ho trovato solo un'infinità di classi astratte ma neanche una classe che
implementa queste funzioni.
Ho provato con :
public class ImagePanel extends JPanel
{
    public ImagePanel(String filename)
    {
        image = Toolkit.getDefaultToolkit().getImage(filename);
        MediaTracker tracker = new MediaTracker(this);
        tracker.addImage(image, 0);
        try{
            tracker.waitForID(0);
        }catch(InterruptedException e){}
    }
    public ImagePanel(byte[] data,int altezza, int larghezza)
    {
        image = Toolkit.getDefaultToolkit().createImage(data, 0, 0);
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Dimension d = getSize();
        int clientW = d.width;
        int clientH = d.height;
        int imageW = image.getWidth(this);
        int imageH = image.getHeight(this);
        g.drawImage(image, 0, 0, this);
    }
    private Image image;
}
Il primo costruttore funziona (il codice l'ho estrapolato da un libro e
leggermente rivisitato da me) ed è qullo che ho ricopiato, il secondo che è
quello che serve a me non fa un tubo.
Mi crea un'oggeto image con dimensione w = -1 e h = -1, ma la classe Image
non ha un metodo per impostare le dimensioni...........
A che serve il MediaTracker???????
Scusa la lunghezza del messaggio e del quantitativo di domande.
Se hai dei testi fatti bene che spiegano come cristo comanda questi
argomenti e che facciono esempi seri, te ne sarei grato se me li mandassi o
mi dicessi dove posso reperirli.
Grazie infinete, anche solo per aver letto questa Reply eccesivamente
lunga..............

mi dicessi dove posso reperirli.
testi da consigliarti non ne ho
io uso la documentazione in html della Sun (sempre aperta in parte all'editor)
ciao_O
http://digilander.iol.it/schiele