Probleme avec un JButton JAVA

Ettrick -  
arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   -
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. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  2. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Hello,

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

    bouton.addActionListener(this);
    -1
    1. Ettrick
       
      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
      0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
    1. Ettrick
       
      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
      0
  4. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
    1. Ettrick
       
      malheureusement sa fonctionne toujours pas avec sa :( je crois que je vais laisser faire.

      merci quand meme :(
      0