Probleme avec un JButton JAVA

Ettrick -  
arth Messages postés 9374 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);
	}
	
	
	

}
A voir également:

4 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
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
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Hello,

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

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

merci quand meme :(
0