Questa è la parte più semplice... è solo un aspetto logico/pratico.
Se un ActionListener lo implementi ad esempio a livello della tua classe esempio e il JLabel label lo dichiari solo come locale al costruttore ... non lo puoi usare altrove.
codice:public class esempio extends JFrame implements ActionListener { .... public esempio() { .... JLabel label = new JLabel(""); .... } public void actionPerformed(ActionEvent e) { // qui ovviamente non potresti usare 'label' } }
Quindi indipendentemente da quale è il design della tua classe e da come/dove implementi i listener, è sicuramente buona cosa se tieni i riferimenti ai componenti che poi usi molto come variabili di istanza piuttosto che come variabili locali.
Il codice di per sé mi risulta corretto e adesso è anche corretto dal punto di vista dei Locale che vuoi cercare.
Se hai i due file:
trad_it_IT.properties
trad_en_US.properties
il tuo codice dovrebbe funzionare senz'altro. Se non funziona è probabile che non riesca a trovare i due properties. E se non trova nessuno dei due dovrebbe pure scatenare un bel java.util.MissingResourceException che dovresti vedere sulla console.
I bundle di risorse vengono cercati usando un ClassLoader, ovvero sfruttando la ricerca lungo il "classpath". La directory che contiene i due file di properties deve essere in classpath. Se non sai ancora bene del classpath, l'argomento è assolutamente da approfondire.


... è solo un aspetto logico/pratico.
Rispondi quotando