Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1219 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  BufferStrategy dans un applet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

BufferStrategy dans un applet

n°760377
City_Hunte​r
Posté le 11-06-2004 à 13:11:52  profilanswer
 

Bpnjour !
 
Je n'arrive pas à utiliser de BufferStrategy dans un applet, sans ouvrir de nouvelle fenêtre...
Voilà le code très simple que je compile, et le problème c'est qu'une nouvelle fenêtre s'ouvre (ce qui est normal puisque Toto est une Frame). J'aimerais bien que tout s'éxecute directement sur la page web...
 
 
public class Exemple extends Applet  
{    
 public void init()  
    {
       new Toto();
    }
}  
 
 
class Toto extends Frame
{
    int x;
    private RenderingThread render;
    private BufferStrategy strategy;
    private Graphics backBuffer;
 
    public Toto()  
    {
 System.out.println("Toto" );
        render = new RenderingThread();
        x = 50;
        setSize(400, 400);
        setVisible(true);
        setIgnoreRepaint(true);
        createBufferStrategy(2);
        strategy = getBufferStrategy();
        backBuffer = strategy.getDrawGraphics();
        render.start();
    }
 
    private void renderingRoutine()
    {
        x++;
        if(x > 180)
            x = 30;
 
        backBuffer.setColor(Color.white);
        backBuffer.fillRect(0,0,getWidth(),getHeight());
        backBuffer.setColor(Color.black);
 
        backBuffer.fillOval(100,100,x,x);
        strategy.show();
    }
 
    class RenderingThread extends Thread {
        public void run() {
            while(true)
            {
                try {
                    sleep(20);
                    renderingRoutine();
                } catch (java.lang.InterruptedException e){}
            }
        }
    }
}
 
 
 
Merci d'avance !


Message édité par City_Hunter le 11-06-2004 à 13:15:47
mood
Publicité
Posté le 11-06-2004 à 13:11:52  profilanswer
 

n°761249
raytaller
Posté le 12-06-2004 à 13:44:25  profilanswer
 

Pour les applets, je te conseille d'utiliser la technique de double buffering software, c'est à dire de dessiner dans une Image, et de la peindre dans la méthode paint exemple :
 

Code :
  1. class Mzed extends Applet{
  2. Image  bufferImage;
  3. Graphics  buffer;
  4. [..]
  5. private void renderingRoutine(){
  6.  buffer.setColor(Color.red);
  7.  buffer...
  8.  [..]
  9. }
  10. public void update(Graphics g){
  11.  g.drawImage(bufferImage,0,0,this);
  12. }
  13. }


 
Donc, tout ton processus de dessin se fait dans une image invisible (bufferImage), et quand tout est fini, hop tu la peinds dans le Graphics de l'applet et elle est affichée.

n°761259
City_Hunte​r
Posté le 12-06-2004 à 14:09:00  profilanswer
 

C'est effectivement vers quoi je me suis tourné ;) Mais j'ai l'impression qu'au niveau vitesse, c'est pas très optimal... La vitesse varie beaucoup d'un PC à l'autre, enfin je ne sais pas si c'est vraiment dû à ça...

n°761265
raytaller
Posté le 12-06-2004 à 14:21:34  profilanswer
 

je crois avoir lu que justement, contre toute attente, le double buffering software était plus rapide que le hardware


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  BufferStrategy dans un applet

 

Sujets relatifs
Realiser une Applet qui envoi un fichier en HTTP à un serveur WEB[Applet] load : class not found
pb. communication inter-applet.Console java dans un applet
Bitos Java [applet - Php][Applet][Servlet][Importation] problème d'importation de package
[Applet] communication avec le navigateurapplet d athentification
[JDBC][Applet]communication servlet/applet
Plus de sujets relatifs à : BufferStrategy dans un applet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR