Quote Originariamente inviata da wasd28 Visualizza il messaggio
Ho capito tutto tranne questo:
1) Abituati a tenere i riferimenti ai componenti come variabili di istanza della tua classe.
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.

Quote Originariamente inviata da wasd28 Visualizza il messaggio
Un' altra cosa, adesso non mi dà errori, ma comunque non mi traduce in inglese quando clicco sul bottone english, perchè?
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.