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 :

[JAVA SWING] pb affichage


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par défaut [JAVA SWING] pb affichage
    Bonjour,

    J'ai un panel sur lequel je change l'affichage en fonction de certains evenements, cela fonctionne pas trop mal, sauf lorsque j'affiche une image, ej en la vois rapidement que lorsque je pesse sur mon dessin!! est ce un pb de refresh!!!

    voici ma methoide paintCOmponent qui me permet de mettre l'image en autres :

    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
    public void paintComponent(Graphics g) {
     
    		Graphics gPanel = this.p.getGraphics();
    		if (event == false){
     
    			this.p.setBorder(new LineBorder(EndPointView.endpointOK, 2, true));
     
    		}
    		else {
     
    			this.p.setBorder(new LineBorder(EndPointView.endpointNOT_OK, 5,
    					true));
    			Graphics gp = imagePanel.getGraphics();
    			Image image = new ImageIcon(Toolkit.getDefaultToolkit()
    					.getImage(
    							getClass().getClassLoader().getResource(
    									"images/alert.JPG"))).getImage();
    			BufferedImage bi = new BufferedImage(this.imagePanel.getWidth(),
    					this.imagePanel.getHeight(), BufferedImage.TYPE_INT_RGB);
     
    			gp.drawImage(image, 0, 0, null);
    			// TODO:event = false
    		}
     
    		// super.paintComponents(g);
    		// TODO a tester
    		//this.getParent().getParent().getParent().repaint();
     
     
    	}
    merci!!

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Ce code est bourre de probleme. Tout d'abord pourquoi appeler this.getGraphics() alors que tu le recois en parametre ? Ensuite ton code est susceptible de faire tourner en boucle infinie ton programme. Il ne faut pas appeler setBorder() dans paint(). Enfin tu charges ton images depuis le disque a CHAQUE FOIS que le panneau est dessine. Et puis tu crees aussi une image inutile, "bi".

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par défaut
    je ne fais pas un this.getGraphics, mais un this.p.getGraphics ou p est un panel sur le panel de bae, car sur le panel de pase j'ai plusieurs composants et le panel p est celui qui se trouve au mileu, et je veux changer l'affichage de celui ci,
    Par contre pour le set border je ne savais pas qu on ne devait pas le mettre dans un paint component!!!

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Meme, n'utilise pas getGraphics(), que ce soit this ou this.p. Et il faut encore moins dessiner d'autres composants dans ta methode paint(). Chaque composant est responsable pour son propre dessin.

    Dans ton cas ton paint() dessine bien ton autre composant mais apres Swing demande a ce composant de se dessiner. Or comme tu n'as pas surcharge paint ou paintComponent, il se dessine normalement... par dessus ce que tu viens de dessiner.

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par défaut
    Comme ca ca devrait aller mieux? tu sais si il est insdipensable d'appeler le superpaintcomponent.

    Par contre mon image a toujours du mal a s'afficher!!!!

    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
    public void paintComponent(Graphics g) {	
    // super.paintComponents(g);
     
    		if (event == false) {
     
    		} else {
     
    			Image image = new ImageIcon(Toolkit.getDefaultToolkit()
    					.getImage(
    							getClass().getClassLoader().getResource(
    									"images/alert.JPG"))).getImage();
    			BufferedImage bi = new BufferedImage(this.imagePanel.getWidth(),
    					this.imagePanel.getHeight(), BufferedImage.TYPE_INT_RGB);
     
    			g.drawImage(image, 0, 0, null);
    					}
     
     
    	}

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/06/2009, 21h39
  2. [debutant]import java.swing?
    Par arou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/02/2006, 12h13
  3. Séminaire Java Swing en vidéo
    Par Olivier Delmotte dans le forum Evolutions du club
    Réponses: 3
    Dernier message: 16/01/2006, 12h33
  4. Application lourde en Java, Swing ou autre...
    Par eponette dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 23/09/2005, 22h17
  5. [Java-Swing][HTML] Page html à inclure dans application Java
    Par terminagroo dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/07/2005, 10h04

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