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

 Java Discussion :

problème avec ma JFrame


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Par défaut problème avec ma JFrame
    bonjour,
    j'ai un problème avec mon JPanel,en effet je n'arrive pas à le faire apparaître dans ma JFrame,j'ai créer une classe qui hérite de JPanel,et je doit l'appeler dans ma 2éme classe qui hérite de JFrame,or j'aurai des exeptions de type :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

    voici mon code de la classe qui hérite de 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
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GradientPaint;
    import java.awt.GridLayout;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.BarRenderer;
    import org.jfree.data.category.DefaultCategoryDataset;
     
    public class Graphique extends JPanel {
     
    	private static final long serialVersionUID = 1L;
     
    	/** titre : Le titre du graphique affiché en haut */
    	private String titre;
    	/** ordonnee : le nom de l'axe des ordonnées */
    	private String ordonnee;
    	/** abscisses : le nom de l'axe des abscisses */
    	private String abscisse;
    	/** valeurs : les valeurs à afficher, elles sont triées par séries et par catégories*/
    	private List<Float> valeurs;
    	/** series : la liste des séries */
    	private List<String> series;
    	/** categories : la liste des categories */
    	private List<String> categories;
    	/** legende : booleen vrai si on affiche la légende */
    	private boolean legende;
    	/** couleurFond : la couleur du fond */
    	private Color couleurFond;
    	/** couleurBarres : les couleurs appliquées aux barres */
    	private Color[] couleursBarres = {Color.cyan.darker(), 
    			Color.red, Color.green, Color.cyan, Color.magenta, 
    			Color.yellow, Color.pink, Color.darkGray, Color.orange};
     
    	/**
             * Constructeur
             * @param titre : le titre du graphique
             * @param abscisse : le nom de l'axe des abscisses
             * @param ordonnee : le nom de l'axe des ordonnées
             * @param valeurs : les valeurs
             * @param fond : la couleur de fond
             * @param listeSeries : les séries
             * @param listeCategory : les catégories
             * @param legende : vrai si on affiche la légende
             */
     
    	public Graphique(String titre, String abscisse, String ordonnee, List<Float> valeurs, Color fond, List<String> listeSeries, List<String> listeCategory, boolean legende) {
    		super(new GridLayout(1,0));
    		this.titre=titre;
    		this.ordonnee=ordonnee;
    		this.abscisse=abscisse;
    		this.valeurs=valeurs;
    		this.series=listeSeries;
    		this.categories=listeCategory;
    		this.legende=legende;
    		this.couleurFond=fond;
    		initialiser();
    	}
     
    	/**
             * Initialise le graphique
             */
    	private void initialiser(){
    		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    		int k = 0;
    		for ( int j=0; j<categories.size(); j++){
    			for (int i=0; i<series.size(); i++){
    				dataset.addValue(valeurs.get(k), series.get(i), categories.get(j));
    				k++;
    			}
     
    		}
    		JFreeChart chart = ChartFactory.createBarChart(
    				titre,   					// chart title
    				abscisse,					// domain axis label
    				ordonnee,   				// range axis label
    				dataset,    				// data
    				PlotOrientation.VERTICAL, 	// orientation
    				legende,                    // include legend
    				true,                     	// tooltips
    				false                     	// URL
    		);
     
    		// definition de la couleur de fond
    		chart.setBackgroundPaint(couleurFond);
     
    		CategoryPlot plot = (CategoryPlot) chart.getPlot();
     
    		//valeur comprise entre 0 et 1 transparence de la zone graphique
    		plot.setBackgroundAlpha(0.9f);
     
    		NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
     
    		BarRenderer renderer = (BarRenderer) plot.getRenderer();
    		renderer.setDrawBarOutline(false);
     
    		// pour la couleur des barres pour chaque serie
     
    		for (int s=0; s<series.size(); s++){
    			GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, couleursBarres[s],
    					0.0f, 0.0f, new Color(0, 40, 70));
    			renderer.setSeriesPaint(s, gp0);
     
    		}		
     
    		ChartPanel chartPanel = new ChartPanel(chart);
    		chartPanel.setFillZoomRectangle(true);
    		chartPanel.setMouseWheelEnabled(true);
    		chartPanel.setPreferredSize(new Dimension(500, 270));
     
    		add(chartPanel);
    	}
     
    	/**
             * Création d'un graphique
             * @param a
             */
    	public static void main(String[] a){
    		List<Float> donnees = new ArrayList<Float>();
    		List<String> l1 = new ArrayList<String>();
    		List<String> l2 = new ArrayList<String>();
    		l2.add("0");
    		l1.add("1");
    		l1.add("2");
    		l1.add("3");
    		l1.add("4");
    		donnees.add(2f);
    		donnees.add(3f);
    		donnees.add(4f);
    		donnees.add(4f);
    	}
     
    }
    et voilà comment j'ai appeler la classe qui hérite de jPanel dans la classe qui hérite de JFrame:
    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
     
    public static void main(String args[]) {
     
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
     
     
                public void run() {
     
                   JFrame f = new JFrame();
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.setBounds(10,10,500,500);
     
                   try{
                      Graphique  g = new Graphique("titre", "x", "y", donnees, Color.white, l2, l1, true);
                      f.add(g);
                   }
    		catch (Exception e){
                        e.printStackTrace();
                    }
                    f.setVisible(true);
     
                }
            });
        }
    si quelqu'un peu m'aider à résoudre à le probléme et merci

  2. #2
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour mozambi

    or j'aurai des exeptions de type :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    j'aurais préféré : J'ai ou j'ai pas

    Si tu en a une, cela nous aiderais si tu nous donne la trace généré par cette exception.
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Membre averti
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Par défaut
    bonjour bpy1401,
    voilà ce que j'ai comme des erreurs d'exception:

    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
    java.lang.NullPointerException
    	at Graphique.initialiser(Graphique.java:77)
    	at Graphique.<init>(Graphique.java:68)
    	at testgraph1$1.run(testgraph1.java:187)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
    	at java.awt.EventQueue.access$000(EventQueue.java:85)
    	at java.awt.EventQueue$1.run(EventQueue.java:603)
    	at java.awt.EventQueue$1.run(EventQueue.java:601)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    testgraph1 est la classe qui hérite de JFrame

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 6
    Par défaut
    Bonjour,

    A priori l'erreur vient de ton paramètre l2 que tu passes en argument de constructeur (l.187 chez toi ou 15 dans ce que tu as posté), qui n'est pas correctement initialisé.
    Vérifie que tu passes bien un objet non null ou postes la partie ou tu initialises ta liste.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Je te conseille d'afficher des traces de ton programme. Cela t'aidera a voir ou il en est.

Discussions similaires

  1. Problème avec les JFrames
    Par kalina dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 05/03/2012, 09h11
  2. Problème avec une JFrame
    Par vinci.novice dans le forum EDT/SwingWorker
    Réponses: 7
    Dernier message: 07/08/2010, 09h27
  3. Probléme avec le setBackground d'une jframe
    Par Micke7 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 07/11/2008, 09h27
  4. Problème avec boite de dialogue pour fermer JFrame
    Par adn013 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 04/09/2007, 15h37

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