Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Quindi dovrei mettere in public esempio
nel listener del bottone italianocodice:Locale italy = new Locale("it","IT"); ResourceBundle bundle = ResourceBundle.getBundle("lang/trad", italy);
In quello inglese:codice:Locale italy = new Locale("it","IT"); bundle = ResourceBundle.getBundle("lang.trad", italy);
e poi se voglio settare la stringa mi basta fare:codice:Locale usa = new Locale("en","US"); bundle = ResourceBundle.getBundle("lang.trad", usa);
label.setText(bundle.getString("stringa"));
codice:public class esempio extends JFrame { // ..... private ResourceBundle bundle; // .... btnItaliano.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { bundle = ResourceBundle.getBundle("lang.trad", new Locale("it","IT")); } }); // ..... btnControlla.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ..... label.setText(bundle.getString("stringa")); } }); }
E se vuoi (sarebbe assolutamente consigliato se avessi più classi diverse che devono usare testi "localizzati") potresti anche incapsulare la gestione del ResourceBundle in una classe a parte che magari potrebbe essere un "singleton".
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet