IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Double Bufer qui déforme les drawOval


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Par défaut Double Bufer qui déforme les drawOval
    Bonjour à tous et à toutes, je suis en train de développer une classe "extends Canvas" quand tout à coup j'utilise la méthode "drawOval" et la... et bien un grans mystère je veux dessiner un rond avec "drawOval(x , y, 20, 20)" et ca ne fait pas un rond, du moins un rond qui est tout moche qui ne ressemble à rien...

    voila pour que vous testiez et m'aidiez j'ai recrée le contexte dans lequel je devellope ma classe mais en plus court :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    fichier test.java
    import java.awt.*;
    import java.applet.*;
     
    public class test extends Applet
    {
    	public void init()
    	{
    		setLayout(null);
    		testf f = new testf();
    		f.setBounds(10 ,10, 100, 100);
    		add(f);
    	}
    }
     
    et enssuite fichier : testf.java
    import java.awt.Canvas;
    import java.awt.Graphics;
    import java.awt.*;
     
    public class testf extends Canvas
    {
    	Image img;
    	Graphics g;
     
    	public testf()
    	{	
    	}
     
    	public void paint(Graphics affiche)
    	{
    		Dimension d = this.getSize();
    		img = createImage(d.width, d.height);
    		g = (Graphics)img.getGraphics();
    		g.drawOval(50,50,30,30);
    		affiche.drawImage(img, 0, 0, this);
    	}
    }

    Testez par vous meme cela fait un rond moche :-(

    Merci de votre aide je n'arrive pas à m'en sortir je comprend pas ce qu'il se passe.

    Nb : Il faut absolument que j'utilise un double buffer car ma classe réelle fait un scintillement sinon.

    Merci d'avance à tous.

    Vince++

    [ Modéré par Viena ]
    Ajout balises de code : Pensez aux balises [code], votre message est plus lisible et la lecture plus facile.

    Les Règles du Forum
    [ Sujet déplacé depuis le forum java par Viena ]

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Par défaut Ausecours...la galère double buffer continue
    Une personne pourrait-elle répondre a ce grans mystère ? lol

    Merci

  3. #3
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    essaye comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dimension d = this.getSize();
    		img = createImage(d.width, d.height);
    		Graphics2D g2d = (Graphics2D)img.getGraphics();
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            g2d.drawOval(50,50,30,30);
    		affiche.drawImage(img, 0, 0, this);
            g2d.dispose();

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Par défaut Presque parfait ;-)
    Merci, en effet je n'avais pas pensé à utiliser l'antialiasing, mais ce qu'il me tracasse c'est que la plupart des applet sur le web, fonctionne avec la manière dont j'ai mis le code plus haut , sans anti aliasing...

    Donc si quelqu'un à une autre soluce...

    Merci énormément déja ;-)

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    C'est un bug, mais qui date, mais qui date... depuis l'introduction de Java2D dans la 1.2.
    Note : si une applet s'execute sur une JVM 1.1.x, la primitive drawOval() n'utilise pas Java2D.

    Voir :
    http://bugs.sun.com/bugdatabase/view...bug_id=5061425
    http://bugs.sun.com/bugdatabase/view...bug_id=4151279

    Il me semble que c'est sense etre enfin corrige dans Java 6 quoi qu'une des evaluation du bug datant d'octobre 2005 laisse a penser que le resultat n'est pas parfait (note je ne peux pas tester dans la beta publique de Mustang car l'affichage 2D apparait corrompu avec ma vieille carte video).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Par défaut comment contourner l'erreur double buffer drawoval ?
    je vois ca... c'est honteux serieusement qu'un tel bug existe. Y a t'il moyen de le coriger sans utiliser un antialiasing ?

    Merci d'avance

Discussions similaires

  1. FTP qui prennent en charges les coupures de connexion
    Par denza1 dans le forum Développement
    Réponses: 2
    Dernier message: 14/01/2006, 18h46
  2. Réponses: 8
    Dernier message: 13/12/2005, 14h02
  3. [VB.NET] MainMenu qui ouvre des forms...
    Par Pleymo dans le forum Windows Forms
    Réponses: 26
    Dernier message: 10/10/2005, 15h57
  4. Qui ne voi plus les images ou smiley du forum ?
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 30
    Dernier message: 13/09/2004, 13h36
  5. Savoir qui ouvre une form
    Par rvzip64 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/07/2004, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo