Probleme avec un JButton JAVA

Bonjour,
je fait presentement une interface graphique qui va ressembler a une lotterie, j'utilise Java et je fait le tout dans un JFrame, parcontre je semble avoir de la miser a trouver comment actioner mes JButtons,
j'ai mit en gras et souligner la partie donc j'aurai besoin d'aide. se que j'ai besoin c'est quand je vais cliquer sur le boutton "1" il va avoir un 1 qui va aparaitre dans le JTextArea.

et aussi si possible de m'expliquer le comment?

Merci beaucoup,
Eric

import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.*;
public class Selection extends JFrame implements ActionListener
{
	
	
	private JButton jbtn649[] = null;
	private JCheckBox jcbCroisant = new JCheckBox ("Ordre Croisant", false);
	private JCheckBox jcbSélectioner = new JCheckBox ("Order Sélectioner", false);
	private JButton jbtnErase = new JButton("Effacé");
	private JTextArea jta = new JTextArea();
	
	//=====================================================================================
	public Selection(int n)
	//=====================================================================================
	{
		super ("Séléction , Eric Dumouchel");
		if ( n < 1) n = 49;
		initialiserGUI(n);
		enregistrerListners();
		
	}	
	//=====================================================================================
	private void initialiserGUI(int n)
	//=====================================================================================
	{	
		
	//Creation des composant supplementaires
		JPanel jpnlContour = (JPanel) this.getContentPane();
		JPanel jpnlCenter = new JPanel();
		jbtn649 = new JButton[n];
		for( int i = 0; i<jbtn649.length ; i++)
		{
			jbtn649[i] = new JButton(String.valueOf(i+1));
		}
		
		
	//Choix de la disposition
		jpnlCenter.setLayout(new GridLayout(7,7));
		
	//Ajout des composant
		this.add(jpnlCenter , "Center");
		for( int i=0; i <n ; i++)
		{
			jpnlCenter.add( jbtn649[i]);
		}
		this.add (jta,"South");
		this.add(jbtnErase,"North");
		this.add(jcbCroisant,"East");
		this.add(jcbSélectioner,"West");
	//Initialisation supplementaires
		jpnlContour.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
		jta.setBorder(BorderFactory.createTitledBorder(""));
		jta.setEditable( false );
		this.pack();
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		// =====================================================================================
		//j'ai adder un icon dans le cote gauche!
		Image im = Toolkit.getDefaultToolkit().getImage("heart2.png");
		this.setIconImage(im);
		// =====================================================================================
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		
		
	
	
	}
	//=====================================================================================
	private void enregistrerListners()
	//=====================================================================================
	{
		jbtnErase.addActionListener(this);
		jbtn649[49].addActionListener(this);
	}
	
	// =====================================================================================
	public void actionPerformed( ActionEvent ae ) 
	// =====================================================================================
	{
		Object src = ae.getSource();
		if( src == jbtnErase ) 
		{
			jta.setText("");
		}
		
	}
	// =====================================================================================
	public void actionPerformed1( ActionEvent ae ) 
	// =====================================================================================
	{
		
	
	Object src = ae.getSource();
	if( src == jbtn649[49] ) 
		{
		for( int i = 0; i<jbtn649.length ; i++)
			{
			jta.setText("String.valueOf(jbtn649[i]+1)");
			}
		}
	}
	//=====================================================================================
	public static void main(String[] args)
	//=====================================================================================
	{
     	JFrame.setDefaultLookAndFeelDecorated(true);
		new Selection(49);
	}
	
	
	

}
Configuration: Windows 7
Eclipse

4 réponses

  1. Contributeur
    Tiens voilà un code qui marche un peu mieux ^^ :

    
    import java.awt.*;
    import java.awt.event.*;
    import java.util.List;
    import java.awt.Image;
    import java.awt.Toolkit;
    import javax.swing.*;
    public class pipo extends JFrame implements ActionListener
    {
    	
    	
    	private JButton jbtn649[] = null;
    	private JCheckBox jcbCroisant = new JCheckBox ("Ordre Croisant", false);
    	private JCheckBox jcbSélectioner = new JCheckBox ("Order Sélectioner", false);
    	private JButton jbtnErase = new JButton("Effacé");
    	private JTextArea jta = new JTextArea();
    	
    	//=====================================================================================
    	public pipo(int n)
    	//=====================================================================================
    	{
    		super ("Séléction , Eric Dumouchel");
    		if ( n < 1) n = 49;
    		initialiserGUI(n);
    		enregistrerListners();
    		
    	}	
    	//=====================================================================================
    	private void initialiserGUI(int n)
    	//=====================================================================================
    	{	
    		
    	//Creation des composant supplementaires
    		JPanel jpnlContour = (JPanel) this.getContentPane();
    		JPanel jpnlCenter = new JPanel();
    		jbtn649 = new JButton[n];
    		for( int i = 0; i<jbtn649.length ; i++)
    		{
    			jbtn649[i] = new JButton(String.valueOf(i+1));
    		}
    		
    		
    	//Choix de la disposition
    		jpnlCenter.setLayout(new GridLayout(7,7));
    		
    	//Ajout des composant
    		this.add(jpnlCenter , "Center");
    		for( int i=0; i <n ; i++)
    		{
    			jpnlCenter.add( jbtn649[i]);
    		}
    		this.add (jta,"South");
    		this.add(jbtnErase,"North");
    		this.add(jcbCroisant,"East");
    		this.add(jcbSélectioner,"West");
    	//Initialisation supplementaires
    		jpnlContour.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
    		jta.setBorder(BorderFactory.createTitledBorder(""));
    		jta.setEditable( false );
    		this.pack();
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		// =====================================================================================
    		//j'ai adder un icon dans le cote gauche!
    		Image im = Toolkit.getDefaultToolkit().getImage("heart2.png");
    		this.setIconImage(im);
    		// =====================================================================================
    		this.setLocationRelativeTo(null);
    		this.setVisible(true);
    		
    		
    	
    	
    	}
    	//=====================================================================================
    	private void enregistrerListners()
    	//=====================================================================================
    	{
    		jbtnErase.addActionListener(this);
    		for(int i=0;i<jbtn649.length;i++)jbtn649[i].addActionListener(this);
    	}
    	
    	// =====================================================================================
    	public void actionPerformed( ActionEvent ae ) 
    	// =====================================================================================
    	{
    		Object src = ae.getSource();
    		if( src == jbtnErase ) 
    		{
    			jta.setText("");
    		}
    		
    		for( int i = 0; i<jbtn649.length ; i++)
    		{
    			if( src == jbtn649[i] )jta.setText(String.valueOf(jbtn649[i].getText()+1));
    		}		
    	}
    
    	//=====================================================================================
    	public static void main(String[] args)
    	//=====================================================================================
    	{
         	JFrame.setDefaultLookAndFeelDecorated(true);
    		new pipo(49);
    	}
    }
    


    J'ai mis 2/3 modifs par-ci par-là parce que ça provoquait des erreurs au lancement, type tableau[49] hors le dernier élément d'un tableau de 49 éléments est tableau[48] puisque la notation va de 0 à 48.
    1. Contributeur
      Hello,

      Normalement dans ton cas pour rendre ton JButton cliquable avec action, il te faut mettre le code suivant :

      bouton.addActionListener(this);
      1. salut, ouais j'ai se code deja
        private void enregistrerListners()
        	//=====================================================================================
        	{
        		jbtnErase.addActionListener(this);
        		jbtn649[49].addActionListener(this);
        	}
        	


        se que j'ai de besoin s'est quand je run mon application quand je clique sur le boutton 3 sa ecrit 3 dans le JTextArea,

        Merci
        Eric
    2. Contributeur
      M'est d'avis que ton souci vient du actionPerformed et du actionPerformed1, pourquoi en avoir mis 2?

      Tu peux très bien gérer tous tes Event dans un seul. Donc :

      
      private void enregistrerListners()
      {
      		jbtnErase.addActionListener(this);
      		jbtn649[49].addActionListener(this);
      }
      	
      
      public void actionPerformed( ActionEvent ae ) 
      {
      		Object src = ae.getSource();
      		if( src == jbtnErase ) 
      		{
      			jta.setText("");
      		}
      
                      if( src == jbtn649[49] ) 
      		{
      		        for( int i = 0; i<jbtn649.length ; i++)
      			{
      			        jta.setText("String.valueOf(jbtn649[i]+1)");
      			}
      		}
      }
      
      


      1. ahhh merci beaucoup. je pensait pas que je pouvais faire sa,

        en se moment, j'ai ceci

        https://imageshack.com/

        j'aimerai que quand je clique sur dison le boutton "24", que plus bas dans le JTextArea sa l'ecrit le chiffre 24, j'ai beaucoup de miser avec sa :(

        Merci,
        Eric
    3. Contributeur
      Hello,

      Ton code est aussi restrictif : if( src == jbtn649[49] )

      Donc ça ne marchera que si tu appuies sur 49.

      Un code un peu moche ^^ , qu'il faut mettre à la place du "if( src == jbtn649[49] ) ...."

      for( int i = 1; i<jbtn649.length+1 ; i++)
      {
      if( src == jbtn649[i] ) jta.setText(jbtn649[i].getText());
      }

      1. malheureusement sa fonctionne toujours pas avec sa :( je crois que je vais laisser faire.

        merci quand meme :(