Java ajouter ActionListener sur une catégorie distincte
Heres ce que je veux faire, l'une des classes est une JFrame qui contient tous les JButtons, je veux une autre classe à écouter pour les actions faites sur la classe JFrame.
Voir le code ci-dessous:
public class Frame extends JFrame{
//all the jcomponents in here
}
public class listener implements ActionListener{
//listen to the actions made by the Frame class
}
Merci pour votre temps.
Sur un peu le même ordre d'idées, vous pouvez choisir des noms différents pour vos classes. Java convention a des classes en commençant par des majuscules, mais les deux
Frame
et Listener
sont des classes java déjà si vous avez des conflits de nom si vous êtes y compris le paquet. Quelque chose comme Kumar MyListener
, ou mieux encore de nom sur la base de ce qu'ils font.OriginalL'auteur Ewen | 2012-08-09
Vous devez vous connecter pour publier un commentaire.
Il suffit d'ajouter une nouvelle instance de votre auditeur à ce que les composants que vous souhaitez écouter. Toute classe qui implémente
ActionListener
peuvent être ajoutés en tant qu'auditeur à vos composants.testButton.addActionListener(new listener());
Nous créons une instance de là.L'auditeur est une interface pas une classe, quand vous faites cela.. bouton.addActionListener(new ActinoListener()); vous créez une classe anonyme qui Implémente l'Interface ActinoListener ... VOIR MA RÉPONSE
Dans son exemple de code, il a clairement une classe appelée
listener
qui est de la mise en œuvre deActionListener
. Vous n'avez pas à utiliser les classes internes anonymes pour tout et il n'y a rien de mal à avoir une classe externe et la mise en œuvre deActionListener
. Vous pouvez créer une instance de l'amende.thats droit.... il n'est pas nécessaire de créer une classe Anonyme, nous pouvons sûrement créer une autre classe qui implémente ActionListener, et passe son exemple lors de l'enregistrement avec le bouton. J'ai été compensation Ewen de doute sur la classe Anonyme
OriginalL'auteur JeffS
1. Vous pouvez utiliser
Inner Class
, ouAnonymous Inner Class
de résoudre ce problème....Par exemple:
Intérieur De La Classe
Par exemple:
Anonyme Intérieur De La Classe
Merci pour ton code mais ce n'est pas ce que j'ai cherché
comment faire pour ajouter une action auditeur classe qui étend la classe bouton ?
OriginalL'auteur Kumar Vivek Mitra
Si vous voulez une seule et même instance de
listener
à écouter tous les boutons dans l'image, vous devez faire la méthode actionPerformed de recueillir tous les clics et délégué basé sur le commandement:qui deviendra plus facile dans Java 7, où vous pouvez passer sur les chaînes!
Le ActionCommand d'un bouton sur le
Text
-attribut de l'JButton
, sauf si vous définissez autrementOriginalL'auteur olagjo