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

Graphisme Java Discussion :

[jFreeChart] Affichage du graphe dans une frame existante


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut [jFreeChart] Affichage du graphe dans une frame existante
    Bonjour,

    Je suis débutant en java et j'essaie d'afficher un graphique dans une jframe.
    J'utilise la bibliothèque jFreeChart et j'arrive pour l'instant à générer une jframe en suivant le tutoriel.
    Le problème est qu'une nouvelle jframe est créée dans laquelle mon graphique apparait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // create and display a frame...
                    ChartFrame frame = new ChartFrame("B", chart);
                    frame.pack();
                    frame.setVisible(true);
    Dans mon projet, j'ai déjà créé une jFrame qui contient mon IHM, notamment un bouton qui permet de générer le graphe.
    Ce que je souhaiterais, c'est que le graphique soit affiché dans mon jFrame1 et non dans un nouveau jFrame.

    PS: Je suis sous netbeans 6.9.1, le reste du programme fonctionne bien, le graphique représente bien mes données stockées dans la BDD.

    Merci d'avance de votre aide

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Utilise un ChartPanel au lieu d'une ChartFrame

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut
    Merci de ta réponse. En fait, j'avais déjà essayé mais je n'arrivais pas à le faire fonctionner. Finalement ça marche; je pense que le problème était au niveau des dimensions du chartpanel.

    Voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ChartPanel chartPanel = new ChartPanel(chart, false);
    chartPanel.setBounds(X1,Y1,Width,Height);
    setContentPane(chartPanel);
    chartPanel.setVisible(true);
    Par contre je viens de galérer pour trouver les dimensions de la fenêtre de l'écran.
    Le seul moyen que j'ai trouvé est de regarder les dimensions de la frame en mode designer et d'empêcher le redimensionnement.

    Le problème vient du fait que je ne vois pas où se trouve l'instanciation de la frame qui a été réalisée automatiquement par Netbeans. Je vois les instanciations de tous les autres objets graphiques sauf celui-là!

    Du coup, pas question de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int w = f.getSize().width;
    int h = f.getSize().height;
    puisqu'il me sort: non-static method getSize() cannot be referenced from a static contex

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En général on essaie d'éviter l'utilisation d'un layout null comme la peste.

    Utilises plutôt du GroupLayout ou du GridBagLayout (les deux se manipulent sans problème dans le designer de netbeans), et tu n'auras absolument plus besoin de t’inquiéter de la taille de la fenêtre...

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Puisque tu utilise NetBeans, j'imagine que tu utilises le GUI Builder matisse. Dans ce cas tu peux simplement mettre un JPanel là où tu veux afficher ton graph en utilisant la palette graphique (tu le places/dimensionnes comme tu veux). Tu peux par exemple nommer ce JPanel "graphPanel", ensuite tu fais un click droit sur le panel et tu lui fixes un layout BorderLayout.
    Et pour afficher ton graph :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChartPanel chartPanel = new ChartPanel(chart, false);
    graphPanel.add(chartPanel, BorderLayout.CENTER);
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut
    Citation Envoyé par le y@m's Voir le message
    Puisque tu utilise NetBeans, j'imagine que tu utilises le GUI Builder matisse. Dans ce cas tu peux simplement mettre un JPanel là où tu veux afficher ton graph en utilisant la palette graphique (tu le places/dimensionnes comme tu veux). Tu peux par exemple nommer ce JPanel "graphPanel", ensuite tu fais un click droit sur le panel et tu lui fixes un layout BorderLayout.
    Et pour afficher ton graph :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChartPanel chartPanel = new ChartPanel(chart, false);
    graphPanel.add(chartPanel, BorderLayout.CENTER);
    C'est justement ce que j'avais essayé de faire. Je ne connaissais pas le clic droit pour fixer un layout, mais ça ne fonctionne pas...
    J'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ChartPanel chartPanel = new ChartPanel(chart,false);
    jPanel1.add(chartPanel, BorderLayout.CENTER);
    jPanel1.setVisible(true);
    (Perso mon panel s'appelle automatiquement jPanel1, c'est Netbeans qui le nomme.)
    Je ne vois pas de différence avec ton code et pourtant rien ne s'affiche...

    J'avais également essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ChartPanel chartPanel = new ChartPanel(chart,false);
    JPanel Panel1 = new JPanel(new BorderLayout());
    Panel1.add(chartPanel, BorderLayout.CENTER);
    Panel1.setVisible(true);
    En supprimant le panel en mode design.
    Dis moi si je me trompe, mais pour moi dans ce cas, c'est moi qui réalise l'instanciation du panel alors que dans le premier cas, c'est l'EDI qui le fait tout seul.

    Bref, pas moyen de faire apparaitre ce graphique

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut
    Citation Envoyé par sinok Voir le message
    En général on essaie d'éviter l'utilisation d'un layout null comme la peste.

    Utilises plutôt du GroupLayout ou du GridBagLayout (les deux se manipulent sans problème dans le designer de netbeans), et tu n'auras absolument plus besoin de t’inquiéter de la taille de la fenêtre...
    Qu'appelles-tu un layout null et comment as-tu vu que j'en utilise un ?

    J'ai cherché un peu partout le GroupLayout ou le GridBagLayout mais je ne les ai pas trouvé.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2014, 12h41
  2. Problème d'affichage de boutons dans une Frame ayant une image en background
    Par felxio dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 13/08/2012, 14h35
  3. Réponses: 28
    Dernier message: 24/06/2009, 14h06
  4. [JFreeChart] affichage d'un graphe dans une page jsp
    Par mokhtarmaroc dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 08/09/2007, 23h13
  5. Réponses: 1
    Dernier message: 24/05/2007, 16h12

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