Probleme avec un JButton JAVA

Fermé
Ettrick - 3 févr. 2010 à 03:03
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 3 févr. 2010 à 05:11
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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
3 févr. 2010 à 05:11
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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
3 févr. 2010 à 03:48
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
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
3 févr. 2010 à 04:01
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
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
3 févr. 2010 à 04:26
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 :(
0