Perfetto, altro problema (giuro questo è l'ultimo poi non rompo più). Devo per forza utilizzare una variabile che sia modificabile all'interno di un listener, però deve essere per forza final? Non è possibile fare una cosa del genere? (So che non si può, dà degli errori e so benissimo che deve essere per forza final ma non esiste un'alternativa?)
codice:
import java.awt.EventQueue;
public class esempio extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
esempio frame = new esempio();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public esempio() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 101);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnItaliano = new JButton("Italiano");
btnItaliano.setBounds(12, 12, 117, 25);
contentPane.add(btnItaliano);
JButton btnInglese = new JButton("English");
btnInglese.setBounds(12, 43, 117, 25);
contentPane.add(btnInglese);
final JLabel label = new JLabel("");
label.setBounds(164, 29, 250, 15);
contentPane.add(label);
//stringhe
Locale italy = new Locale("it","IT");
ResourceBundle bundle = ResourceBundle.getBundle("lang/trad", italy);
final String Stringa = bundle.getString("stringa");
//listener
btnItaliano.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Locale italy = new Locale("it","IT");
ResourceBundle bundle = ResourceBundle.getBundle("lang/trad", italy);
Stringa = bundle.getString("stringa");
label.setText(Stringa);
}
});
btnInglese.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Locale usa = new Locale("en","US");
ResourceBundle bundle = ResourceBundle.getBundle("lang/trad", usa);
Stringa = bundle.getString("stringa");
label.setText(Stringa);
}
});
}
}