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 :

insertion dans un bouton dans une graphe


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut insertion dans un bouton dans une graphe
    bonjour,
    j'ai utilisé un code dans le but d'afficher un graphe .

    Code :
    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
    if(jCheckBox3.isSelected()){
              try{
                        con = getConnection("jdbc:mysql://localhost:3306/base_rapport","root","");
              Statement statement = con.createStatement(rs.TYPE_FORWARD_ONLY,rs.CONCUR_READ_ONLY);
              String sql3 = "Select Vendor, sum(Rate) as Rate from (select case Vendor when 'NSN' then 'Nokia' else Vendor end as Vendor, Rate from  (  Select vendor ,(count(1) )*100/(Select count(id_incident)from incident where open_time between '"+jTextField1.getText()+"' and'"+jTextField2.getText()+"' and vendor !='') as Rate  from incident   where open_time between '"+jTextField1.getText()+"'and'"+jTextField2.getText()+"' and vendor !='' group by upper(vendor) ) as x ) as y group by vendor";
     
             rs3= statement.executeQuery(sql3);
     DefaultPieDataset pieDataset = new DefaultPieDataset(); 
    while(rs3.next()){      
     
     
            pieDataset.setValue( rs3.getString("vendor"),rs3.getDouble(2));
     
     
            }
    JFreeChart chart = ChartFactory.createPieChart3D("Disfonctionnement par fournisseurs",  pieDataset, true, true, true); 
    PiePlot3D piePlot3d = (PiePlot3D) chart.getPlot();
    piePlot3d.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}"));
    fenetre fen3 = new fenetre();
    JPanel pnl = new JPanel(new BorderLayout()); 
        fen3.setContentPane(pnl); 
        fen3.setVisible(true);
        fen3.setSize(500, 500); 
    ChartPanel cPanel1 = new ChartPanel(chart);    
        pnl.add(cPanel1);
         File fichier = new File("C:\\Users\\alaeddine.zammeli.st\\Desktop\\résultat_application\\Répartition par fournisseur de '"+jTextField1.getText()+"' à '"+jTextField2.getText()+"'.png"); 
        try { 
          ChartUtilities.saveChartAsPNG(fichier, chart, 500, 500); 
        } catch (IOException e) { 
          e.printStackTrace(); 
        } 
                      }
            catch (Exception e) {
               JOptionPane.showMessageDialog(this,e);
                      }
     
           }
    je veux insérer dans ce graphe un bouton (Show détails).Est ce que c'est réalisable?
    merci.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Un conseil : ça serait sympa si tu indentais/formatait au moins un peu ton code ça motiverait les lecteurs...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse.
    j'ai éxécuté un requete sql dans le but d'avoir une graphe.c'est bien déroulé.
    mon objectif est que dans le graphe généré , je veux ajouter un bouton .
    j'ai essayé avec ce code :
    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
    if(jCheckBox1.isSelected()){
        try{
     
          Statement statement = con.createStatement(rs.TYPE_FORWARD_ONLY,rs.CONCUR_READ_ONLY);
          String sql1 = "Select last_updated_by,(count(id_incident) )*100/(Select count(id_incident) from incident where Status like 'Closed' and open_time between '"+date1+"' and '"+date2+"')from incident  where  Status like 'Closed'and open_time between '"+date1+"' and '"+date2+"' group by last_updated_by";
          rs1 = statement.executeQuery(sql1);
          DefaultPieDataset pieDataset = new DefaultPieDataset(); 
          while(rs1.next()){      
          pieDataset.setValue( rs1.getString("last_updated_by"),rs1.getDouble(2));                        
     }
          JFreeChart chart = ChartFactory.createPieChart3D("Taux résolution par personne",  pieDataset, true, true, true); 
     PiePlot3D piePlot3d = (PiePlot3D) chart.getPlot();
         piePlot3d.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}"));
      fenetre fen= new fenetre();
          JPanel pnl = new JPanel(new CardLayout()); 
       fen.setContentPane(pnl); 
    fen.setVisible(true);
    fen.setSize(500, 500); 
     showdetails = new JButton(new AbstractAction("showdetails") {
     
              @Override
              public void actionPerformed(ActionEvent e) {
     
              }
          }) ;
     
           ChartPanel cPanel1 = new ChartPanel(chart);    
            pnl.add(cPanel1,showdetails);
        File fichier = new File("C:\\Users\\Desktop\\résultat_application\\Taux résolution par personne de '"+date1+"' à '"+date2+"'.png"); 
           try { 
      ChartUtilities.saveChartAsPNG(fichier, chart, 400, 250); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    }   
                  }
               catch (Exception e) {
           JOptionPane.showMessageDialog(this,e);
                  }
        }
    mais j'ai obtient cette erreur:"cannot add to layout : constraint must be a string".
    merci d'avance.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Pourquoi quand on te demande au minimum de formatter le texte tu fait semblant de ne pas entendre ?!

    Enfin....

    JPanel (pour ne pas dire Container qui est le parent le plus ressemblant) ne contient pas de méthode add(component, component) comme tu sembles le croire au vu du code. (cf : https://docs.oracle.com/javase/7/doc...Container.html)

    Il faut donc faire 2 appel successif à add() pour rajouter 2 composant dans un panel en ayant au préalable bien choisis un layout qui le supporte.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse.
    j'ai faire comme tu as dit. l'erreur a disparu mais dans l'affichage je ne trouve pas le boutton juste le graphe.
    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
      if(jCheckBox1.isSelected()){
            try{
     
              Statement statement = con.createStatement(rs.TYPE_FORWARD_ONLY,rs.CONCUR_READ_ONLY);
              String sql1 = "Select last_updated_by,(count(id_incident) )*100/(Select count(id_incident) from incident where Status like 'Closed' and open_time between '"+date1+"' and '"+date2+"')from incident  where  Status like 'Closed'and open_time between '"+date1+"' and '"+date2+"' group by last_updated_by";
              rs1 = statement.executeQuery(sql1);
              DefaultPieDataset pieDataset = new DefaultPieDataset(); 
              while(rs1.next()){      
              pieDataset.setValue( rs1.getString("last_updated_by"),rs1.getDouble(2));                        
    }
    JFreeChart chart = ChartFactory.createPieChart3D("Taux résolution par personne",  pieDataset, true, true, true); 
    PiePlot3D piePlot3d = (PiePlot3D) chart.getPlot();
    piePlot3d.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}"));
     
    fenetre fen= new fenetre();
    JPanel pnl = new JPanel(new CardLayout()); 
        fen.setContentPane(pnl); 
     
        fen.setVisible(true);
        fen.setSize(500, 500); 
         showdetails = new JButton(new AbstractAction("showdetails") {
     
                  @Override
                  public void actionPerformed(ActionEvent e) {
     
                  }
              }) ;
     
    ChartPanel cPanel1 = new ChartPanel(chart);    
     pnl.add(cPanel1);
     pnl.add(showdetails);
         File fichier = new File("C:\\Users\\alaeddine.zammeli.st\\Desktop\\résultat_application\\Taux résolution par personne de '"+date1+"' à '"+date2+"'.png"); 
        try { 
          ChartUtilities.saveChartAsPNG(fichier, chart, 400, 250); 
        } catch (IOException e) { 
          e.printStackTrace(); 
        }   
                      }
                   catch (Exception e) {
               JOptionPane.showMessageDialog(this,e);
                      }
            }
    merci.

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Tu as utilisez un cardLayout. Un cardLayout ne permet d'afficher qu'un élément a la fois.

    De plus si ce n'est que pour un probleme de layout, pas nécessaire de nous mettre le code avec l'accès a la DB et tout le toutim, surtout que tu n'as toujours pas formatter ton code...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse.
    j'ai changé le cardLayout par un BorderLayout. c'est bien marché.
    mais le boutton 'showdetails' sur toute la fenetre de manière a couvrir totalement le graphe.
    comment dimensionner cette boutton et l'afficher au dessous de graphe.
    merci.

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    En 10 lignes maximum. Montres nous comment tu crée ton panel principale, son paramétrage de Layout ainsi que les lignes ou tu ajoutes tes composants.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/09/2010, 16h57
  2. INSERT du login seulement dans un enregistrement d'une table access
    Par sarah_s dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 30/05/2007, 23h29
  3. Des boutons dans le clip dans le bouton
    Par 75patience dans le forum Flash
    Réponses: 2
    Dernier message: 01/05/2007, 11h33
  4. [Débutant]Insertion d'un bouton dans un JFrame
    Par philDev59 dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 08/07/2006, 12h08
  5. [VB.NET] image d'un bouton dans un panel dans une fentre MDI
    Par smedini dans le forum Windows Forms
    Réponses: 6
    Dernier message: 02/02/2006, 18h15

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