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 :

Enigme d'affichage avec NetBeans et JFreechart


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut Enigme d'affichage avec NetBeans et JFreechart
    Bonjour à tous,

    Je sèche depuis un certain temps sur un problème qui ne fait que se creuser au fur et à mesure que je teste des petites choses pour savoir d'où vient le problème.

    Je développe une appli sous netbeans et j'aimerais afficher un graphique fait avec jfreechart en l'ajoutant à un panel.

    Pour ça, je n'ai fait que customiser le code de création du panel (création du JPanel panelGraphique) en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ChartPanel panelGraphe = new ChartPanel(creerJFreeChart());
    panelGraphique.add(panelGraphe, BorderLayout.CENTER);
    rien ne s'affiche, le jpanel auquel j'ajoute est affiché normalement à l'écran mais rien n'est présent dedans et après des quantités de tests pour savoir ce qui n'allait pas j'en suis venu à tenter un truc bizarre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    panelGraphe = new ChartPanel(creerJFreeChart());
    JFrame bidule = new JFrame();
    bidule.setContentPane(panelGraphe);
    bidule.pack();
    panelGraphique.add(panelGraphe, BorderLayout.CENTER);
    et là, miracle, je graphique s'affiche correctement. Je ne vois pas du tout comment ni pourquoi le fait d'ajouter le ChartPanel à une JFrame changerait quelque chose à son affichage dans un JPanel qui ne dépend absolument pas de la JFrame en question.

    Après plusieurs tests, j'ai l'impression que c'est le pack qui fait s'afficher le chartpanel.

    Merci d'avance pour votre aide, comme j'ai dû perdre un peu de clairvoyance à force de ne rien comprendre à tout ça, j'ai peut être oublié certaines informations importantes dans la description de mon problème, n'hésitez pas à me le faire remarque si c'est le cas.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    ChartPanel étend la classe JPanel. JPanel ne peut pas s'afficher sans "support" (un JFrame par exemple).
    Donc le seul code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChartPanel panelGraphe = new ChartPanel(creerJFreeChart());
    panelGraphique.add(panelGraphe, BorderLayout.CENTER);
    .. ne suffit pas à afficher quelque chose.

    Pour aller plus loin, il faudrait voir la partie de code complet suivant la déclaration
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut
    Le projet que je développe est sous netbeans, j'ajoute donc que tous les composants sont ajoutés à une JFrame, le panel auquel j'ajoute le ChartPanel est dans la JFrame principale de mon application.

    Le mystère est que dans le premier cas (où je ne fais qu'ajouter le ChartPanel à mon JPanel), mon JPanel s'affiche normalement mais aucune trace de ChartPanel, tandis qu'en instanciant une JFrame bidon (appelée bidule dans l'exemple de code que je donne) à laquelle j'ajoute mon ChartPanel, ce même ChartPanel s'affiche correctement sur mon JPanel qui n'a rien à voir avec bidule (la JFrame).

    J'arrive donc à afficher mon graphique mais par une méthode complètement stupide de créer une JFrame inutile que je ne rend pas visible. JFrame dont apparemment la méthode pack rend mon ChartPanel affichable.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Bon d'accord.
    Cela ressemble à un problème d'actualisation ...
    Qu'est-ce que cela donnerait en appliquant la méthode pack à la JFrame principale (après ajout du JPanel) ?
    Ou encore une autre méthode qui force l'actualisation : panelGraphe.repaint
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut
    J'ai essayé de refaire un pack sur la fenêtre principale, ça ne fait que mettre un bordel pas possible dans la JFrame avec les composants créés automatiquement par netbeans. Sinon, le repaint, je m'étais dit que ça ne ferait strictement rien et j'avais hélas raison.

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    J'ai oublié de mentionner la méthode panelGraphe.validate() qui donne parfois des résultats
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Probleme dans l'affichage avec netbeans
    Par king_soft dans le forum JSF
    Réponses: 0
    Dernier message: 21/05/2010, 18h45
  2. Réponses: 2
    Dernier message: 21/01/2010, 09h38
  3. probleme d'affichage avec netbeans
    Par steven10 dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/06/2009, 13h54
  4. Affichage de composants (avec NetBeans)
    Par TheDoci dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/04/2008, 19h10
  5. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21

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