Passer des arguments dans JButton ActionListener
Je suis à la recherche d'un moyen de transmettre une variable ou une chaîne ou quelque chose dans une anonyme actionlistener ( ou explicite actionlistener ) pour un JButton. Voici ce que j'ai:
public class Tool {
...
public static void addDialog() {
JButton addButton = new JButton( "Add" );
JTextField entry = new JTextField( "Entry Text", 20 );
...
addButton.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent e )
{
System.out.println( entry.getText() );
}
});
...
}
}
Droit maintenant, je viens de déclarer entry
être une variable globale, mais je déteste cette façon de faire ce travail. Est-il une meilleure alternative?
OriginalL'auteur Sam | 2012-03-29
Vous devez vous connecter pour publier un commentaire.
ActionListener
interface.JTextField
argument.Exemple -
Problème?
Encore, j'ai eu le même problème et a obtenu ce qu'un utile answare.
OriginalL'auteur mre
2 façons
faire
entry
final
de sorte qu'il peut être consulté dans la classe anonymefaire
entry
un champfinal
encore assez pour vraiment saisir l'utilisation je pense, merci.OriginalL'auteur ratchet freak
Peut-être mieux dans ce cas utiliser l'Action et AbstractAction, où l'on pouvait faire ce genre de chose.
OriginalL'auteur ControlAltDel
À partir du code que je vois ici, l'entrée n'est PAS une variable globale. C'est une variable locale dans la addDialog() la méthode.. ai-je mal vous comprendre?
Si vous déclarez la variable localement comme définitive, alors que l'auditeur sera en mesure d'y accéder.
OriginalL'auteur Elias