Bonjour a tous,
j'ai un problème, j'essaie d'utiliser le look and feel napkin.
Aprés pas mal de recherche, j'ai trouver comment l'utiliser (premiere fois que j'utilise un L&F externe ).

Mais la, j'ai un gros problème, ma JFileChooser n'apparait plus (alors que sa fonctionne bien si je n'applique pas le L&F)

de plus, j'ai ceci qui s'affiche dans ma console
Code : Sélectionner tout - Visualiser dans une fenêtre à part
keys we didn't overwrite: []

donc voici mon code:

affichagePrinc.java
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
 
package replaceDotAndUnderscorePerSpace;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
 
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
 
@SuppressWarnings("serial")
public class AffichagePrinc extends JFrame {
 
	JButton quitter;
	JButton executer;
	JButton ouvrir;
 
	String path;
 
	JFileChooser fc;
	File dossier = null;
 
	JPanel pan1;
 
	JProgressBar progression;
 
	JLabel affPath;
 
	public static void main(String[] args) {
		try {
			UIManager.setLookAndFeel("napkin.NapkinLookAndFeel");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
		new AffichagePrinc();
 
	}
 
	public AffichagePrinc() {
		super("Replace Dot and Underscore per Space");
 
		// placement des composants
		setLayout(new BorderLayout());
 
		/***************************** HAUT ***************************/
 
		// panel qui va contenir les composant pour le choix du fichier
 
		JPanel pan1 = new JPanel();
 
		TitledBorder titleBorder = new TitledBorder(new LineBorder(Color.gray,
				2), "Dossier choisi");
		pan1.setBorder(titleBorder);
 
		pan1.add(new JLabel("Dossier à traiter :"));
 
		affPath = new JLabel("Aucun dossier choisie !");
		pan1.add(affPath);
 
		// seclecteur de fichier
		fc = new JFileChooser();
		fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
 
		add(pan1, BorderLayout.NORTH);
 
		/********************* CENTRE *****************************/
 
		JPanel pan2 = new JPanel();
		TitledBorder titleBorder2 = new TitledBorder(new LineBorder(Color.gray,
				2), "Progression");
		pan2.setBorder(titleBorder2);
 
		progression = new JProgressBar();
		progression.setStringPainted(true);
		pan2.add(progression);
		add(pan2);
 
		/******************************* BAS *************************/
 
		// panel qui va contenir les composants quitter et executer
		JPanel pan3 = new JPanel();
		TitledBorder titleBorder3 = new TitledBorder(new LineBorder(Color.gray,
				2), "Action");
		pan3.setBorder(titleBorder3);
 
		ouvrir = new JButton("Ouvrir");
		ouvrir.addActionListener(new EcouteurBouton());
		pan3.add(ouvrir);
 
		executer = new JButton("Executer");
		executer.addActionListener(new EcouteurBouton());
		executer.setEnabled(false);
		pan3.add(executer);
 
		quitter = new JButton("Quitter");
		quitter.addActionListener(new EcouteurBouton());
		pan3.add(quitter);
 
		add(pan3, BorderLayout.SOUTH);
 
		/********************** FIN **************************/
 
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setMinimumSize(new Dimension(400, 100));
		this.setResizable(false);
		pack();
		setVisible(true);
	}
 
	public class EcouteurBouton implements ActionListener {
 
		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == quitter) {
				System.exit(0);
			} else if (e.getSource() == executer) {
				// ici on lance le traitement
 
				// si on a bien choisie un dossier
				if (dossier.exists()) {
					new Traitement(dossier, AffichagePrinc.this);
				}
 
			} else {
				int returnVal = fc.showOpenDialog(AffichagePrinc.this);
				if (returnVal == JFileChooser.APPROVE_OPTION) {
					dossier = fc.getSelectedFile();
					affPath.setText(dossier.getAbsolutePath());
					executer.setEnabled(true);
					pack();
 
				}
 
			}
		}
	}
}
Traitement.java
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
 
package replaceDotAndUnderscorePerSpace;
 
import java.io.File;
 
import javax.swing.JOptionPane;
 
public class Traitement {
	File fichiers[];
	private Thread t;
	public AffichagePrinc affPrin;
 
	public Traitement(File dossier, AffichagePrinc affPrin) {
		this.affPrin = affPrin;
 
		fichiers = dossier.listFiles();
 
		int nbFichier = 0;
 
		// nombre de fichier a traiter
		for (int i = 0; i < fichiers.length; i++)
			if (fichiers[i].isFile())
				nbFichier++;
 
		// si le nombre de fichier a traiter est vide, nous affichons a message
		// d'erreur
		// et nous remetons le systeme dans les conditions initial
		if (nbFichier == 0) {
			information("Aucun fichier présent dans le répertoire",
					"Information", affPrin);
		}
 
		// fixage des bornes de la jProgressBar
		affPrin.progression.setMaximum(nbFichier);
		affPrin.progression.setMinimum(0);
 
		t = new Thread(new Avancement());
		t.start();
 
	}
 
	@SuppressWarnings("static-access")
	private void information(String info, String titre, AffichagePrinc RAZ) {
 
		// affichage de l'information
		JOptionPane jop1 = new JOptionPane();
		jop1.showMessageDialog(null, info, titre,
				JOptionPane.INFORMATION_MESSAGE);
		// remise dans les conditions initial
		RAZ.dossier = null;
		RAZ.affPath.setText("Aucun dossier choisie !");
		RAZ.executer.setEnabled(false);
	}
 
	public void replaceDotPerSpace(File fichier) {
 
		// recupération du nom du fichier
		String name = fichier.getName();
		String path = fichier.getParent() + File.separator;
 
		// decoupage afin de garder le point de l'extension
		String tabName[] = name.split(".");
 
		// remplacement des autre points par des espaces
		for (int i = 0; i < tabName.length - 1; i++)
			tabName[i] = tabName[i].replace(".", " ");
 
		// recréation du nom du fichier
		for (int i = 0; i < tabName.length; i++)
			name += tabName[i];
 
		// remplacement des _ par des espaces
		name = name.replace("_", " ");
 
		File newFichier = new File(path + name);
		fichier.renameTo(newFichier);
 
	}
 
	class Avancement implements Runnable {
 
		public void run() {
			// lancement du remplacement par fichier
			for (int i = 0; i < fichiers.length; i++) {
				if (fichiers[i].isFile()) {
					replaceDotPerSpace(fichiers[i]);
keys we didn't overwrite: []keys we didn't overwrite: []
 
 
					// mise a jour de la JprogressBar
					affPrin.progression
							.setValue(affPrin.progression.getValue() + 1);
				}
			}
		}
	}
 
}
Donc, si vous savez pourquoi cela ne fonctionne plus ?
Je vous remercie d'avance pour votre aide

PS: le .jar du L&F est bien dans le buildPath