voila j'ai un probleme (je serais pas venu sinon^^)
j'ai ce code d'erreur
<spoiler>
Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl(Unknown Source) at javax.swing.JToolBar.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source) at Graphisme.<init>(Graphisme.java:81) at Graphisme.main(Graphisme.java:105)
@SuppressWarnings("unused") public class Graphisme {
/**Création de la fenetre, son conteneur, et d'une barre d'outil*/ private JFrame fenetre=new JFrame("Projet"); //Le nom de la fenêtre, il faut une JFrame dans tous les cas. private Container contenu=fenetre.getContentPane(); //Un conteneur pour y mettre le contenu de la fenêtre. private JToolBar barre_outil=new JToolBar(); //Une barre d'outils où l'on va mettre un bouton charger, et l'heure de simulation
/**Les deux listes de séléctions*/
private JList l_liste_secteur=new JList(); //Une JList permet de séléctionner plusieurs éléments, les manipuler, ici, ce seront les secteurs. private JList l_liste_avion=new JList(); //Idem, cf http://prevert.upmf-grenoble.fr/Prog/Java/swing/JList.html private DefaultListModel l_avion = new DefaultListModel(); //Ca sert à le fournir à JList pour remplir la liste private DefaultListModel l_secteur = new DefaultListModel();//Idem, cf www.developpez.net/forums/d531892/java/general-java/debuter/arraylist-jlist/
/**Les boutons (qui ne se font pas la guerre) * Ok, j'arrête les blagues débiles*/
private JButton b_degrouper = new JButton("Dégrouper"); //Un bouton qui servira à dégrouper les zones. private JButton b_regrouper = new JButton("Regrouper"); //Un bouton pour regrouper les zones. private JButton b_retarder = new JButton("Retarder"); //Un bouton pour retarder l'avion séléctionner. private JButton b_annuler = new JButton("Annuler"); //Un bouton pour annuler l'avion selectionné. private JButton b_charger = new JButton("Charger"); //Un bouton pour lancer le chargement.
/**Zones de textes de la fenetre, et les labels*/
private JTextField retard_entrer; //Une zone de texte où écrire le retard de l'avion en minutes (sera géré le passage en heures dans la fonction retarder. private JTextField zone_heure; //Une zone où écrire l'heure de simulation private JTextField zone_min; //Une zone de texte où écrire la minute de simulation private JLabel retard_aff=new JLabel("Retard"); //Un label"retard" où sera écrit "retard" avant de l'inscrire dans le textfield private JLabel heure_aff=new JLabel("Heure"); //Un label "heure" à coté du textefield heure-simu private JLabel min_aff=new JLabel("Minutes"); //Idem pour les minutes private JLabel auteur=new JLabel("Made by Noms supprimés Modération CCM - Version 1.0"); //Un petit Label en bas de fenêtre de copyright^^
/** Menus et sous-menus*/
private JMenuBar menuBar=new JMenuBar(); //Barre de menus private JMenu menu=new JMenu("Menu"); //Un bouton "Menu" dans la barre des menus private JMenuItem menu_charger=new JMenuItem("Charger",KeyEvent.VK_C); //Un sous menu "Charger" que l'on ajoutera dans le "Menu" private JMenuItem menu_quitter=new JMenuItem("Quitter",KeyEvent.VK_Q); //Un sous menu "Quitter" que l'on ajoutera dans le "Menu"
/**Panels de Dessin et De positionnement de tout*/
private JPanel zone_dessin=new JPanel(); //Panel où l'on va dessiner private JPanel p_b_secteur=new JPanel(); //Panel où l'on va regrouper les boutons des fonctions secteur, juste pour la mise en forme private JPanel p_b_avion=new JPanel(); //Panel où l'on va regrouper les boutons des fonctions avion, juste pour la mise en forme private JPanel p_secteur=new JPanel(); //Panel où se trouvera la liste de secteurs, et les boutons, juste pour la mise en forme private JPanel p_avion=new JPanel(); //Panel où se trouver la liste des avions,le retard en texte, et les boutons, juste pour la mise en forme private JPanel zone_non_dessin=new JPanel(); //Panel qui concentrera tout ce qui n'est pas dessin, c'est a dire p_secteur et p_avion
/**Données à avoir pour travailler avec*/ private int echelle; //Echelle du dessin (int) private int rapport; //Rapport distance point, distance réelle (int) private ArrayList<Avion> liste_avion=new ArrayList<Avion>(); //Liste des avions avec lesquels on travaille. private ArrayList<Secteur> liste_secteur=new ArrayList<Secteur>(); //Liste des secteurs avec lesquels on travaille.
/**Constructeur de la fenêtre*/ Graphisme(){
/**Ajout des menus*/
menu.add(menu_charger); //Ajout du sous-menu charger au menu menu.add(menu_quitter); //Ajout du sous-menu quitter au menu menuBar.add(menu); //Ajout de menu à la menubar fenetre.setJMenuBar(menuBar); //Ajout de menubar a la fenetre menu_quitter.addActionListener(new Action_Quitter()); //On ajoute la fonction quitter au sous menu quitter menu_charger.addActionListener(new Action_Charger()); //On ajoute la fonction charger au sous-menu charger
/**Ajout de la barre d'outils*/
barre_outil.add(b_charger); //Ajout du bouton charger à la barre d'outils barre_outil.addSeparator(); //On met un séparateur barre_outil.add(heure_aff); //Ajout du label "heures" barre_outil.add(zone_heure); //Ajout de la zone de texte où l'on va rentrer l'heure de simu barre_outil.addSeparator(); //On met un séparateur barre_outil.add(min_aff); //Ajout du label "minutes" barre_outil.add(zone_min); //Ajout de la zone de texte où l'on va rentrer la minute de simu barre_outil.setFloatable(false); //On fixe la barre d'outils, elle ne sera pas déplaçable barre_outil.setRollover(true); //Le bouton de la barre d'outil sera surligné quand la souris passera dessus fenetre.add(barre_outil,BorderLayout.PAGE_START); //On ajoute la barre d'outils à la fenetre, en haut
/**Ajout du Label des Auteurs en bas de la fenêtre*/ fenetre.add(auteur,BorderLayout.PAGE_END);
contenu.add(b_charger); /**Paramétrage de la fenêtre*/
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //La croix permet de quitter la fenêtre fenetre.pack(); //Dimensionnement de la fenêtre fenetre.setVisible(true); //On rend la fenêtre visible fenetre.setResizable(false); //On interdit le redimensionnement de la fenêtre (Je me suis trop embêté pour permettre ça) }
/**Main de test*/ public static void main(String[] args) { Graphisme g1=new Graphisme(); g1.toString(); }
/**Classe Action Charge qui charge les fichiers dans la fenetre en action performed*/
class Action_Charger implements ActionListener {
public Action_Charger() { fenetre.dispose(); } public void actionPerformed(ActionEvent e) { System.exit(0); }
}
/**Classe Action Quitter qui ferme la fenetre en action performed*/ class Action_Quitter implements ActionListener { public Action_Quitter() { fenetre.dispose(); } public void actionPerformed(ActionEvent arg0) { System.exit(0); }
} }
</spoiler>
Attention, les avions et secteurs sont des classes avec des constructeurs et tout.
Et mon action listener de charger ne sert qu'à quitter car je n'ai pas encore codé ce qu'il fallait.
que faire?
merci d'avance
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.
merci