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

Interfaces Graphiques en Java Discussion :

Bug affichage fenetre


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut Bug affichage fenetre
    bonjour à tous,

    Voila je debute en programmation java. J'essaye de creer une fenêtre en java comportant des bouton et des labels. J'arrive à creer celle-ci mais lorsque j'ouvre ma fenêtre tous les bouton se met à clignoter de partout et en quelque sorte bug. Je ne comprend pas d'ou vien l'erreur. Voici le code de mon programme que j'ai réaliser sous trois fichier class.

    Premier fichier : "Every"

    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
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
     
     
    public class Every {
     
    	/**
             * @param args
             * @throws AWTException 
             */
     
    	public static void main(String[] args) throws AWTException {
     
    		FenetreDeBase fen = new FenetreDeBase();
     
    	}
     
    }
    voici mon deuxième fichier class : "FenetreDeBase" :

    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
    39
    40
    41
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JFrame;
     
     
    public class FenetreDeBase extends JFrame implements ActionListener{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
     
    	private Panneau pan = new Panneau();
     
     
    	public FenetreDeBase(){
     
            this.setTitle("Ma première fenêtre java");
            this.setSize(600, 600);
            this.setLocationRelativeTo(null);
     
            this.setContentPane(pan);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            this.setVisible(true);
     
            this.setLayout(new BorderLayout());
     
     
    	}
     
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
     
    	}
     
    }

    et enfin le dernier fichier class : "Panneau" :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.*;
     
     
    public class Panneau extends JPanel {
     
            /**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	private Button boutonSave = new Button("Save");
    	private Button boutonCreateBoucle = new Button("Creer Boucle");
    	private Button boutonEndBoucle = new Button("Fin Boucle");
    	private Button boutonGoto = new Button("Deplacer souris");
    	private Button boutonWaitDuring = new Button("Pause pendant");
    	private Button boutonModif = new Button("Modifier");
     
    	private Button boutonPlay = new Button("Play");
    	private Button boutonStop = new Button("Stop");
     
    	private JLabel label = new JLabel("Mon label");
    	private JTextArea label2 = new JTextArea("Mon label paragraphe, appuyer sur Creer boucle pour afficher");
     
    		public void paintComponent(Graphics g){
     
    			int PosXofButton = 0;
    	    	/*
    	        label.setHorizontalAlignment(JLabel.CENTER);
    	    	this.add(label,BorderLayout.NORTH);
    	    	*/
     
    	    	label2.setBounds(180,65,this.getWidth()-190,this.getHeight()-75);
    	    	this.add(label2);
     
    	    	boutonSave.setBounds(10, 60, 150, 65);
    	    	PosXofButton = PosXofButton + boutonSave.getHeight()+65;
     
    	    	boutonCreateBoucle.setBounds(10,PosXofButton, 150, 65);
    	    	PosXofButton = PosXofButton + boutonCreateBoucle.getHeight()+15;
     
    	    	boutonEndBoucle.setBounds(10, PosXofButton, 150, 65);
    	    	PosXofButton = PosXofButton + boutonEndBoucle.getHeight()+15;
     
    	    	boutonGoto.setBounds(10, PosXofButton, 150, 65);
    	    	PosXofButton = PosXofButton + boutonGoto.getHeight()+15;
     
    	    	boutonWaitDuring.setBounds(10, PosXofButton, 150, 65);
    	    	PosXofButton = PosXofButton + boutonWaitDuring.getHeight()+15;
     
    	    	boutonModif.setBounds(10,PosXofButton, 150, 65);
    	    	PosXofButton = PosXofButton + boutonModif.getHeight()+15;
     
    	    	boutonPlay.setBounds(this.getWidth()/2-boutonPlay.getWidth()-5,10, 150, 45);
     
    	    	boutonStop.setBounds(this.getWidth()/2+5,10, 150, 45);
     
    	    	boutonSave.addActionListener(new BoutonSave());
    	    	boutonCreateBoucle.addActionListener(new BoutonCreateBoucle());
     
    	    	this.add(boutonSave);
    	    	this.add(boutonCreateBoucle);
    	    	this.add(boutonEndBoucle);
    	    	this.add(boutonGoto);
    	    	this.add(boutonWaitDuring);
    	    	this.add(boutonModif);
     
    	    	this.add(boutonPlay);
    	    	this.add(boutonStop);
     
    		}
     
    		class BoutonSave implements ActionListener{
    		 public void actionPerformed(ActionEvent arg0) {
     
    	        label.setText("Vous avez cliqué sur le bouton save");
     
    	     }
    		}
     
    		class BoutonCreateBoucle implements ActionListener{
    			 public void actionPerformed(ActionEvent arg0) {
     
    		        label2.setText("Voici un big paragraphe avec des saut de ligne\n du blabla et plein d'autre truc\nefjnelfbelribfiyerfgbizyegfezb\nlol sa veut rien dire\n");
    		     }
     
    			}
     
     
    }
    Merci de votre aide pour m'indiquer pourquoi ma fenêtre bug.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Le problème vient de ton panneau.
    Il ne faut pas utiliser paintComponent() pour placer tes composants.
    Cette méthode sert à dessiner le "fond" du panneau.
    Cette méthode étant appelé régulièrement pour rafraichir l'affichage de ton panneau, tout doit clignoter en effet dans ton cas.
    Utilise le constructeur (ou une méthode appelée depuis le constructeur) pour positionner tes composants.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut
    Merci beaucoup, effectivement le problème venait de là.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Apache2] Bug Affichage/Chargement incomplet...
    Par Atomicfryer dans le forum Apache
    Réponses: 3
    Dernier message: 27/09/2009, 12h24
  2. [C#] [GDI+] Bug affichage
    Par Tips dans le forum C#
    Réponses: 8
    Dernier message: 05/12/2005, 17h41
  3. [TScrollBox] Bug affichage
    Par Pedro dans le forum Composants VCL
    Réponses: 10
    Dernier message: 14/09/2005, 11h48
  4. [MFC] affichage fenetre
    Par mulot49 dans le forum MFC
    Réponses: 5
    Dernier message: 08/06/2004, 19h17

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