debutant avec ResourceBundle
	
	
		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:
	
| 12
 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 dentrée de lapplication
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:
	
| 12
 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 lorsquon 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:
	
| 12
 3
 
 |  
menuLanguage=Language
labelHello=Hello World! | 
 Language_en_US.properties
	Code:
	
| 12
 3
 
 |  
menuLanguage=Language
labelHello=Hello World! | 
 et enfin la fameuse erreur:
	Code:
	
| 12
 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) |