Bonjour,
Dans mon application je souhaite gérer plusieurs langages;
pour celà j'ai créé un menu (JMenu) appelé "Langues".
Au chargement de l'appli, je parcours les fichiers de langues, et pour chacun je crée à la volée des JMenuItem (nommés par exemple "Français", "English", "Défaut").
(Pour chacun de ces menus, je pioche le nom de la langue dans le fichier .properties en question).
Maintenant, je souhaite modifier tous les Labels de l'appli quand je clique sur une langue.
Pour celà il faudrait que j'arrive à faire le lien entre le JMenuItem cliqué et le fichier .properties correspondant....
Quelle solution voyez-vous ? J'ai pensé à extraire le nom du JMenuItem cliqué, mais comment faire ? Est-ce une bonne solution ?
voilà ma fonction qui charge les fichiers et crée les JMenuItem correspondants
J'espère que c'est assez clair...
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 public void loadLanguageFiles() { File f = new File ("."); File[] listFiles = f.listFiles(); Properties p = new Properties(); for (int i=0; i<listFiles.length; i++) { // on parcourt les fichiers if (listFiles[i].getName().startsWith("Lang")) { // si c un fichier .properties de langues FileInputStream in; try { in = new FileInputStream (listFiles[i].getName()); p.load(in); JMenuItem newMenuItem = new JMenuItem (p.getProperty ("ThisLanguage")); jMenuLanguage.add (newMenuItem); // alors on ajoute un JMenuItem avec le bon nom newMenuItem.addActionListener(new java.awt.event.ActionListener() { // auquel on ajoute un écouteur, que j'essaye de remplir... public void actionPerformed(ActionEvent e) { newMenuItemListeGenres_actionPerformed(e); } }); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } } }
Merci d'avance pour votre aide !
Partager