Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
972 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  associer une action lors de la creation de boutons

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

associer une action lors de la creation de boutons

n°779065
jj59
Posté le 26-06-2004 à 15:58:36  profilanswer
 

Bonjours.
 
Je voudrais créer un programme java qui permet de gérer des place (de spectacle par exemple)
 
Ainsi chaque places sera représenté par un bouton
(par exemple si le nombre de places est de 50, il y aura 50 boutons dans une fenetre)
 
La partie du programme permettant ceci est la suivante:
 
  Container panneau = fenetre7.getContentPane();
  panneau.setLayout (new GridLayout ((nbPlaces/10),10,1,1));
   
  for(int i=1;i<=nbPlaces;i++)
  {
    if(i<10)
    {
      panneau.add(new JButton("Place 0"+i));
    }
    else
    {  
      panneau.add(new JButton("Place "+i));
    }
  }
   
  fenetre7.pack();
  fenetre7.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  fenetre7.show();

 
Mon problème est le suivant :
Je voudrai donc que lorsqu'on appui sur un des boutons une fenetre apparaisse permettant la saisie des caractéristiques du client (son nom, prénom ....)
 
 
Merci pour votre aide.

mood
Publicité
Posté le 26-06-2004 à 15:58:36  profilanswer
 

n°779301
veryfree
Posté le 26-06-2004 à 20:50:36  profilanswer
 

jj59 a écrit :

Bonjours.


 
 [:ddr555]  
 

Citation :

Je voudrais créer un programme java qui permet de gérer des place (de spectacle par exemple)
 
Ainsi chaque places sera représenté par un bouton
(par exemple si le nombre de places est de 50, il y aura 50 boutons dans une fenetre)
 
La partie du programme permettant ceci est la suivante:
 
  Container panneau = fenetre7.getContentPane();
  panneau.setLayout (new GridLayout ((nbPlaces/10),10,1,1));
   
  for(int i=1;i<=nbPlaces;i++)
  {
    if(i<10)
    {
      panneau.add(new JButton("Place 0"+i));
    }
    else
    {  
      panneau.add(new JButton("Place "+i));
    }
  }
   
  fenetre7.pack();
  fenetre7.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  fenetre7.show();

 
Mon problème est le suivant :
Je voudrai donc que lorsqu'on appui sur un des boutons une fenetre apparaisse permettant la saisie des caractéristiques du client (son nom, prénom ....)
 
 
Merci pour votre aide.


 
ben deja:
JButton bt = new JButton("Place 0"+i); << tu le crée c'est bien mieux ;)
bt.setActionCommand("0"+i); // par exemple
bt.addActionListener(this) << ta classe implementera actionListener
 
panneau.add(bt);
 
apres tu mettras ce qu'il faut dans actionPerformed grace au getActionCommand() de ActionEvent


Message édité par veryfree le 26-06-2004 à 20:51:14
n°779580
jj59
Posté le 27-06-2004 à 14:44:24  profilanswer
 

je suis désolé je n'est pas beaucoup touché aux interfaces graphiques cette année.  
 
Donc j'ai fait ce que vous m'avez dit et voici se que sa donne :
 
Container panneau = fenetre7.getContentPane();
  panneau.setLayout (new GridLayout ((nbPlaces/10),10,1,1));
 
  for(int i=1;i<=nbPlaces;i++)
  {    
    if(i<10)
    {
      JButton bt = new JButton("Place 0"+i);
      bt.setActionCommand("0"+i);
      bt.addActionListener(this);
      panneau.add(bt);
    }
    else
    {  
      JButton bt = new JButton("Place "+i);
      bt.setActionCommand("0"+i);
      bt.addActionListener(this);
      panneau.add(bt);
    }
  }
   
  fenetre7.pack();
  fenetre7.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  fenetre7.show();
   
  fenetre1.setVisible(false);

 
J'espere que c'est bien sa qu'il fallait faire mais je ne sait toujours pas comment faire apparaitre une fenetre lorsqu'on appuit sur un des boutons, désolé.
 
Merci pour votre aide

n°779653
veryfree
Posté le 27-06-2004 à 18:02:10  profilanswer
 

ben apres tu gere dans le actionperformed:
 
public void actionPerformed(ActionEvent e){
 
taframe.setVisible(true);
 
mais si y a des conditions par rapport au bouton ce serait bien de recupérer l'actionCommand mais apparament t'en a pas besoin...
}

n°780213
jj59
Posté le 28-06-2004 à 11:21:17  profilanswer
 

Ouais sa marche que pour le dernier bouton créé.
En effet si je construit 5 boutons, si j'appuis sur le bouton :
 
- "Place 01" sa ne marche pas.
- le 2 , 3 et 4 non plus
 
mais par contre pour le bouton "Place 05", la fenetre s'affiche bien

n°780277
FarookFree​man
Posté le 28-06-2004 à 11:45:51  profilanswer
 

Si je me trompe, je te conseille de faire une classe adaptée à ton probleme:
 
class MonJButton implements ActionListener
{
  // une référence vers les données représentées par ce    
  // bouton
   ...
  public void actionPerformed(ActionEvent e) {
    ...    
  }
}
 
Dans ton code précédent, t'as juste à changer JButton par MonJButton
et le this de addActionListener par bt et peut être d'autre truc ^^.

n°780314
jj59
Posté le 28-06-2004 à 12:03:02  profilanswer
 

Désolé, j'ai pas tout compris.
 
Comme je l'ai dit je n'est pas fait beaucoup d'interface graphique cette année (je suis en 1er année de dut info)
et tout ce qui est ActionListener, actionPerformed .... , je ne maitrise pas du tout.
 
Pouvez vous m'eclairer davantage svp.
 
Merci pour votre aide

n°780494
FarookFree​man
Posté le 28-06-2004 à 14:17:17  profilanswer
 

ActionListener c'est une interface, c'est à dire un ensemble de méthode virtuelle (i.e pas implémentées) (classe virtuelle pure en C++)
 
la classe qui est définie "implements UneInterface" signifie qu'elle définit les méthodes de l'interface UneInterface.
 
Dans l'interface ActionListener, il y a une méthode :
ActionPerformed(...)
Cette méthode est appelée par le gestionnaire d'événement de  
la machine virtuelle lorsque tu cliques ou tu actionnes (touche entrée) le composant.
 
MAIS
 
pour que cette méthode soit appelée, il faut préciser au gestionnaire d'évenement que la méthode Actionperformed, en cas d'action de l'utilisateur a été définie et doit être appelée, pour le composant graphique en question.
 
Pour cela, il faut rajouter le code:
 
LeComposant.addActionListener(listenerRef),
 
où listenerRef est une référence(pointeur) vers l'interface qui contient la méthode devant être appelée en cas d'action de l'utilisateur.
 
 
Du coup, pour ce qui concerne tes boutons, tu tapes le code que je t'ai passé et tu rajoutes un AddActionListener à chaque objet dont tu veux récupérer un click ou ou la frappe de la touche ENTREE.
 
le principe est le même pour tous les Listeners. Si t'as compris ça, ba tu peux faire pas mal de truc avec la gestion des événements.
 
Voilà j'espère avoir été clair. ^^
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  associer une action lors de la creation de boutons

 

Sujets relatifs
pb de boutons et de tableauxcréation d'un menu sous DOS avec win XP
Création base de données depuis procédure stockéesSOS création de tableau
Création hierarchique XML via ADO & Arbre Oracle SQLFormulaire HTML, parametre "action" pointant sur un autre serveur
Logiciel création Flash[PHP-GD ] Creation d'image a partir de petites image
Cherche logiciel pour création de site[MSI] Création d'un package
Plus de sujets relatifs à : associer une action lors de la creation de boutons


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR