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 :

Persistance d'une image dans un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut Persistance d'une image dans un JPanel
    Bonjour à tous,

    J'utilise jCharts pour afficher des graphiques dans un JPanel.
    Le problème est que ce graphique n'est pas persistant (disparition dès qu'une fenêtre passe par dessus).

    Ce panel est inclus dans un autre JPanel.
    J'aimerai savoir à quel moment je dois appeler la méthode afficherGraphique et comment rendre l'affichage persistant.

    Voilà le code du JPanel :
    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
     
    public class GraphiqueEmpilePanel extends JPanel{
     
        /**
         * This is the default constructor
         */
        public GraphiqueEmpilePanel() {
            super();
            initialize();
        }
     
        /**
         * This method initializes this
         * 
         * @return void
         */
        private void initialize() {
            this.setSize(700, 350);
            this.setPreferredSize(new java.awt.Dimension(700,350));
            addComponentListener(this);
        }
     
        public void afficherGraphique(){
            String[] lblAxeX = {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"};
            String[] lblAxeSeries = {"Appel Entrant","Appel Perdu"};
            double[][] donnees = {
                    {3,4,12,6,25,12,30,36,42,100,52,68,120,150,123,42,41,38,52,63,21,19,12,3},
                    {0,1,1,0,4,0,5,6,7,23,12,3,24,31,3,1,2,0,0,0,1,0,1,0}
            };
            Paint[] couleurs = {Color.BLACK, Color.BLUE};
            GraphBarreEmpile graphique;
            try {
                graphique = new GraphBarreEmpile(lblAxeX, lblAxeSeries, "Heure", "Nb Appel", "Stat Appel Entrant", donnees, 680, 340, couleurs);
                graphique.getGraphique().setGraphics2D((Graphics2D)getGraphics());
                graphique.getGraphique().render();
            }
            catch (ChartDataException e) {
                e.printStackTrace();
            }
            catch (PropertyException e) {
                e.printStackTrace();
            }
        } 
    }

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    tu devrais plutot déplacer le code de afficherGraphique() dans paintComponent(), ca marchera mieux :
    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
    public class GraphiqueEmpilePanel extends JPanel{
     
        /**
         * This is the default constructor
         */
        public GraphiqueEmpilePanel() {
            super();
            initialize();
        }
     
        /**
         * This method initializes this
         *
         * @return void
         */
        private void initialize() {
            this.setSize(700, 350);
            this.setPreferredSize(new java.awt.Dimension(700,350));
            addComponentListener(this);
        }
     
        protected void paintComponent(Graphics g){
            String[] lblAxeX = {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"};
            String[] lblAxeSeries = {"Appel Entrant","Appel Perdu"};
            double[][] donnees = {
                    {3,4,12,6,25,12,30,36,42,100,52,68,120,150,123,42,41,38,52,63,21,19,12,3},
                    {0,1,1,0,4,0,5,6,7,23,12,3,24,31,3,1,2,0,0,0,1,0,1,0}
            };
            Paint[] couleurs = {Color.BLACK, Color.BLUE};
            GraphBarreEmpile graphique;
            try {
                graphique = new GraphBarreEmpile(lblAxeX, lblAxeSeries, "Heure", "Nb Appel", "Stat Appel Entrant", donnees, 680, 340, couleurs);
                graphique.getGraphique().setGraphics2D((Graphics2D)g);
                graphique.getGraphique().render();
            }
            catch (ChartDataException e) {
                e.printStackTrace();
            }
            catch (PropertyException e) {
                e.printStackTrace();
            }
        }
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Nickel, ça marche.
    J'ai simplement modifier en plus la récupération du Graphics du JPanel puisque je le récupère en paramètre de paint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    graphiqueCombo.getGraphique().setGraphics2D((Graphics2D)g);
    Merci bcp.

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

Discussions similaires

  1. positionnement d'une image dans un jpanel
    Par isankem dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/06/2007, 23h35
  2. Afficher une image dans un JPanel
    Par @omzo dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 19/05/2007, 00h19
  3. Afficher une image dans un JPanel
    Par yaya0057 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 04/04/2007, 00h10
  4. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33
  5. [JPanel]Mettre une image dans un JPanel
    Par ehmppowa dans le forum Composants
    Réponses: 11
    Dernier message: 30/11/2005, 20h17

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