Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creation dynamique d'un bouton

    3 avril 2009 à 10:57:18

    Salut les zéros,

    j'ai un problème lors de l'ajout dynamique d'un bouton dans un JPanel.
    voici mon code;

    jButtonAjoutBloc.addActionListener(new java.awt.event.ActionListener() {
    	public void actionPerformed(java.awt.event.ActionEvent e) {
    		System.out.println("actionPerformed()");
    		AjoutBloc ab1 = new AjoutBloc(jPanelTraitementZone);
    		jButtonAjoutBloc.addActionListener(ab1);
    		}
    	});
    


    public class AjoutBloc implements ActionListener{
    
    	private Container contenu;
    	
    	public AjoutBloc(Container contenu)
    	{
    		this.contenu = contenu;
    	}
    	
    	public void actionPerformed(ActionEvent ev){
    		
    		JButton nouvBouton = new JButton("test");
    		contenu.add(nouvBouton);
    		contenu.validate(); //pour recalculer
    		
    	}
    

    Mon problème est que lorsque je clic sur le jButtonAjoutBloc pour ajouter le nouveau bouton dans mon jPanel il y a un comportemant bizarre.

    Description du comportement;
    1er clic : pas de nouveau bouton;
    2e clic : 1 nouveau bouton est ajouté au jPanel;
    3e clic : 2 nouveaux boutons sont ajoutés au jPanel;
    4e clic : 3 nouveaux boutons sont ajoutés au jPanel;
    et ainsi de suite.

    je souhaite que le bouton apparaisse dés le premier clic,
    je comprends pas pourquoi ça réagit comme ça.

    Si quelqu'un avais une idée ?
    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 avril 2009 à 11:01:01

      tu es sur que le 1er clic ne sert pas juste à mettre le focus sur ta fenêtre?

      test en debug pour voir dans quelle méthode tu passes.
      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2009 à 11:37:14

        salut shakhal,

        lors du premier clic il appelle pas la methode AjoutBloc je sais pas pourquoi.

        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2009 à 11:50:05

          Bonjour.
          Lors du premier clic, il n'appelle pas la méthode ajouteBloc et c'est normal.
          En fait tout ce que fait le premier clic c'est ajouter un ActionListener de type ajouteBloc au bouton, mais ajouter un ActionListener ne le déclenche pas.

          Il est déclenché lorsque tu clique sur le bouton, c'est-à-dire dès le second clic.

          Pour résoudre le problème, soit tu appele la méthode clairement dans l'ActionListener sans nom, soit tu ajoute dès le début au bouton un listenet AjouteBloc
          • Partager sur Facebook
          • Partager sur Twitter

          Creation dynamique d'un bouton

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown