Generer une Action

Generer une Action - Java - Programmation

Marsh Posté le 12-11-2004 à 13:51:41    

Salut,
 
Je souhaite pouvoir générer des actions, je trouve pas comment faire.
 
Je m'explique (enfin, j'essaie...) : Je veux pouvoir envoyer une Action comme le ferai un JButton par exemple et apres le reccuperer a partir d'une autre classe qui implementerai ActionListener. J'ai cherché mais je trouve pas ce que je veux faire.
 
Ma classe qui doit "générer" les actions extends de JPanel. Et mes Actions sont écoutées par une JFrame (implements ActionListener).
 
Je suis un peu perdu... si vous pouviez me donner une piste (ce qu'il faut que ma classe implements ou des noms de méthodes...)
 
Merci d'avance

Reply

Marsh Posté le 12-11-2004 à 13:51:41   

Reply

Marsh Posté le 12-11-2004 à 18:03:33    

c'est pas tres clair ton prob :/
 
il y a quoi dans ton panel ?
s'il y a un bouton rien t'empecherai dans l'absolu de faire  
buttonDeTonPanel.addActionListener(instanceDeTaFrameImplementantActionListener);
 
lorsque tu click dessus , ca appel l'actionPerformed de ta "JFrame".
 
enfin c'est tres moche de faire ainsi, faudrait revoir le design de l'appli.
 

Reply

Marsh Posté le 13-11-2004 à 14:10:42    

Je pas que ca soit un bouton ou autre qui géréne l'action, mais juste un morceau de code d'une methode de mon JPanel qui déclenche l'action (qui sera reccupéré par la JFrame).

Reply

Marsh Posté le 13-11-2004 à 16:10:08    

dans ce cas file une instance de ta frame a ton panel et le tour est joué, non ?

Reply

Marsh Posté le 13-11-2004 à 16:50:50    

J'ai reussi a faire ce que je voulais.
 
J'explique pour ceux que ca interresse:
 
Mon JPanel implements ActionListener et possede les methodes:
public synchronized void removeActionListener(ActionListener l)
public synchronized void addActionListener(ActionListener l)
 
Pour envoyer une Action a partir de mon JPanel:
ActionEvent action = new ActionEvent(this, 0, "Commande bidon" );
//pour l'envoyer a tous les listeners (meme si dans mon cas j'en ai qu'un):
int index = 0;
while ( index < actionListeners.size() ){
   ((ActionListener)(actionListeners.get(index++))).actionPerformed(action);
}
 
Je reccupere l'action dans ma JFrame qui implements ActionListener grace a la methode :
public void actionPerformed(ActionEvent e)
 
et la méthode e.getCommand() me donne la commande.
 
 
Je sais pas si c'est clair. Ca vous parait bien ou c'est plutot un gros bricolage?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed