Bonjour,

J'ai deux questions.

Premièrement j'ai un JTree que je souhaite sauver, voici mon code pour le sauvegarder:

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
 
 public void save(JTree tree){//ne garde pas les retours à la ligne
	 	DefaultMutableTreeNode node1;
	 	DefaultMutableTreeNode node;
	 	JFileChooser chooser = new JFileChooser();
	 	System.out.println("1");
	 		chooser.setApproveButtonText("Ok");
	 		chooser.showOpenDialog(null);
	 		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){	
	 			System.out.println("2");
	 			try{
 
			 		FileWriter fw = new FileWriter(chooser.getSelectedFile());
			 		chooser.setApproveButtonText("Ok"); //intitulé du bouto
			 		System.out.println("3");
			 		BufferedWriter output = new BufferedWriter(fw);
			 		String texte = centre.getTextArea()+"\r\n";
					output.write(texte+"\r\n");
					System.out.println("4");
					DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
					DefaultMutableTreeNode racine = (DefaultMutableTreeNode) model.getRoot();
					System.out.println("5");
					int a = racine.getChildCount();
					int b;
					System.out.println("6");
					for(int i = 1; i<=a;i++){
						System.out.println("7");
						node = (DefaultMutableTreeNode)racine.getChildAt(i);
						output.write(node.toString());
						b = node.getChildCount();
						for(int j =1;j<=a;j++){
							System.out.println("8");
							node1 = (DefaultMutableTreeNode)node.getChildAt(j);
							output.write(node1.toString());
							System.out.println("9");
						}
						output.write("\r\n");
						System.out.println("10");
					}
					output.flush();
					output.close();
					System.out.println("fichier enregistré");
	 			}
	 			catch(IOException ioe){
					System.out.print("Erreur : ");
					ioe.printStackTrace();
				}
			}
	 }
Sachant que mon arbre est sur trois niveaux. Voici l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
     [java] 1
     [java] Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
     [java] 2
     [java] 3
     [java]     at control.RWFile.save(Unknown Source)4
     [java]
     [java]     at control.MyActionListener.actionPerformed(Unknown Source)
     [java]     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
Un fichier vide est créé.

Deuxièmement, j'ai un JOptionPane qui contient un JPanel JOptionPane.showMessageDialog(null,req,"Blabla",JOptionPane.PLAIN_MESSAGE); lui-même contenant trois JTextField de base et un bouton permettant d'ajouter un JTextField à l'optionPane. J'ai ajouté des écouteurs dans ma classe Action Listener voici mon 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
 
if(evt.getSource()==centre.getRequete()){
			System.out.println("1");
			Requete req = new Requete();//Probleme ici
			and = new ArrayList<String>();
			System.out.println("2");
			req.addListener(this);
			System.out.println("3");
			if(evt.getSource()==req.getButtonAdd()){
				System.out.println("5");
				field = new JTextField();
				req.add(field);
				and.add(field.getText());
			}
			JOptionPane.showMessageDialog(null,req,"Faire une requete",JOptionPane.PLAIN_MESSAGE);
}
Lorsque j'appuie sur mon bouton rien ne se passe.

Merci d'avance