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

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();
        }
      }
    }
  }
J'espère que c'est assez clair...
Merci d'avance pour votre aide !