An Internationalized Swing Application : ResourceBundle « I18N « Java Tutorial





File: MyResources_en_US.properties
userName=User Name
password=Password
login=Login
File: MyResources_fr_CA.properties
userName=Compte
password=Mot de passe
login=Ouvrir session
File: MyResources.properties (the default)
userName=User Name
password=Password
login=Login

These files are placed in the directory specified in the class path.

import java.awt.GridLayout;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class MainClass {

  public static void main(String[] args) {
    Locale locale = Locale.getDefault();
    ResourceBundle rb = ResourceBundle.getBundle("MyResources", locale);
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("I18N Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new GridLayout(3, 2));
    frame.add(new JLabel(rb.getString("userName")));
    frame.add(new JTextField());
    frame.add(new JLabel(rb.getString("password")));
    frame.add(new JPasswordField());
    frame.add(new JButton(rb.getString("login")));
    frame.pack();
    frame.setVisible(true);
  }
}










13.4.ResourceBundle
13.4.1.File name for java.util.ResourceBundle
13.4.2.Load resources via a resources file
13.4.3.Reading Properties Files using ResourceBundle
13.4.4.Convert ResourceBundle to Properties
13.4.5.Convert ResourceBundle to Map
13.4.6.An Internationalized Swing Application
13.4.7.JOptionPane Resources
13.4.8.Using the JDK 6 ResourceBundle class
13.4.9.Displaying Calendar Names
13.4.10.Customizing Resource Bundle Loading
13.4.11.XML resource bundle
13.4.12.Get resource bundle for a certain locale
13.4.13.Java file based resource bundle
13.4.14.ResourceBundle: avoid a performance penalty by superfluous resource (and classes loaded by Class.forName) lookups on web server in applets.