bonjour;

je vient de debuter avec les Ressource Bundles; bon j'ai trouver un exemplpe dans un autre site; j'ai suivi toutes les etapes mais a la fin j'ai eu des erreurs:
mon projet contient ces fichiers:
une frame simple:
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
 
package p;
 
import javax.swing.*;
 
public class MyFrame extends JFrame {
// Déclaration des différents composants
private JLabel labelHello;
private JMenuBar menuBar;
private JMenu menuLanguage;
private JMenuItem menuFr;
private JMenuItem menuEn;
private LanguageChooser languageChooser;
 
// Point d’entrée de l’application
public static void main(String[] args) {
MyFrame fenetre = new MyFrame();
}
 
public MyFrame() {
// Initialisation standard
super("Application Internationale");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
// Création du LanguageChooser
languageChooser = new LanguageChooser(this);
 
// Création du label
labelHello = new JLabel();
getContentPane().add(labelHello);
 
// Création de la barre de menu
menuBar = new JMenuBar();
menuLanguage = new JMenu();
 
menuFr = new JMenuItem("Francais");
menuFr.setActionCommand("menuFr");
menuFr.addActionListener(languageChooser);
menuLanguage.add(menuFr);
 
menuEn = new JMenuItem("English");
menuEn.setActionCommand("menuEn");
menuEn.addActionListener(languageChooser);
menuLanguage.add(menuEn);
 
menuBar.add(menuLanguage);
setJMenuBar(menuBar);
 
// On initailise les valeurs des labels, menus
paintLabelWithLanguage();
 
// On affiche la fenêtre
setVisible(true);
}
 
/*
* Méthode qui initialise le texte des différents labels et menus en
* fonction de la langue
*/
protected void paintLabelWithLanguage() {
menuLanguage.setText(LanguageChooser
.getAnInternationalizeString("menuLanguage"));
labelHello.setText(LanguageChooser
.getAnInternationalizeString("labelHello"));
}
}
la classe LanguageChooser
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
 
package p;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import java.util.ResourceBundle;
 
public class LanguageChooser implements ActionListener {
 
// Nom du fichier properties (sans les codes ISO)
private static final String LANGUAGE_FILE = "language";
 
private static ResourceBundle resourceBundle;
 
// La fenetre
private MyFrame frame;
 
public LanguageChooser(MyFrame aFrame) {
frame = aFrame;
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale
.getDefault());
}
 
// Methode appelee lorsqu’on selectionne un menu
public void actionPerformed(ActionEvent arg0) {
// On a selectionne le menu anglais
if (arg0.getActionCommand().equals("menuEn")) {
// On choisi le fichier anglais
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.US);
}
// Sinon on choisi le francais
else if (arg0.getActionCommand().equals("menuFr")) {
// On choisi le francais
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.FRANCE);
}
//On modifie les labels avec la nouvelle langue
frame.paintLabelWithLanguage();
}
 
/*
* Methode statique qui permet de recuperer un String du fichier de langue
* en fonction de la cle passee en parametre
*/
public static String getAnInternationalizeString(String key) {
// On retourne la valeur associee a la cle
return resourceBundle.getString(key);
}
 
 
}
et les proprietes:
Language_fr_FR.properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
menuLanguage=Language
labelHello=Hello World!
Language_en_US.properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
menuLanguage=Language
labelHello=Hello World!
et enfin la fameuse erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name language, locale fr_FR
	at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:806)
	at java.util.ResourceBundle.getBundle(ResourceBundle.java:577)
	at p.LanguageChooser.<init>(LanguageChooser.java:20)
	at p.MyFrame.<init>(MyFrame.java:26)
	at p.MyFrame.main(MyFrame.java:16)