[JAVA] JRadioButton

Fermé
oceane751 Messages postés 80 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 17 juillet 2018 - 16 avril 2007 à 00:55
 souady youness - 25 mai 2015 à 18:10
bonjour!!

j'ai un petit soucis avec mes JRadioButton dont les labels sont issus d'une requete. je n'arrive pas à recuperer ces labels..

voici mon code


import java.awt.*;
import java.awt.event.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.*;

public class ajouter extends JFrame implements ActionListener
{

	private Button bouton;
	private TextField nom, prix;
	private JPanel panel;
	private JRadioButton box;
	private ButtonGroup group;
	private JLabel lab;
	private JFrame frame;
	
	

	public ajouter()
	{
		super();
		panel = new JPanel();
		panel.setLayout(new FlowLayout(FlowLayout.LEFT,4,2));
		
		
		nom = new TextField("nom", 10);
		prix = new TextField("prix en €", 10);
		nom.setBackground(Color.yellow);
		
		panel.add(nom);
		panel.add(prix);
		
		
		
		String pilote = "com.mysql.jdbc.Driver";
		
		try
		{
			//Chargement de mon pilote
			Class.forName(pilote);
			//Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
			Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","root");
			//Création de mon statement qui va me permettre d'executer mes requetes
			Statement instruction = connexion.createStatement();
			//Ma table s'appelle creperie et tout ce qui reste dépend d'elle
			//Vous devez changer certaines infos comme le nom de la table et celui des colonnes
			ResultSet resultat = instruction.executeQuery("SELECT DISTINCT type FROM carte");
			JLabel lab = new JLabel("type");
			panel.add(lab);
			while(resultat.next())
			{
				
				String resul = resultat.getString("type");
				box = new JRadioButton(resul, false);
				group = new ButtonGroup();
				group.add(box);
				
				panel.add(box);
				
					
			} 
			
		}
		catch (Exception e)
		{
			
			System.out.println("echec pilote : "+e);
		}
		
		
		
		bouton = new Button("ajouter");
		panel.add(bouton);
		bouton.addActionListener(this);
		//box.addActionListener(this);
		
		JFrame frame = new JFrame();
		frame.setContentPane(panel);
		frame.setSize(300,300);
		frame.setVisible(true);
			
		
	}

	
	
	public void actionPerformed(ActionEvent e) 
	{
		if  ( (Button) e.getSource() == bouton ) 
		{
			if (box.isSelected()) 
			{

		//String chel = e.getActionCommand();
			
				//String lab11 = box.getText();
			

			
			String nomm = nom.getText();
			String prixx = prix.getText();
			
			JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :" );
			
			
			String pilote = "com.mysql.jdbc.Driver";
			
			try{
				//Chargement de mon pilote
				Class.forName(pilote);
				//Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
				Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","root");
				//Création de mon statement qui va me permettre d'executer mes requetes
				Statement instruction = connexion.createStatement();
				//Ma table s'appelle coffees et tout ce qui reste dépend d'elle
				//Vous devez changer certaines infos comme le nom de la table et celui des colonnes
				int inserer = instruction.executeUpdate("INSERT INTO carte VALUES ('','"+nom.getText()+"','','"+prix.getText()+"')");
				
				
				
					
				
			}
			catch (Exception ex){
				
				System.out.println("echec pilote : "+ex);
			}
				
			}
	}
	}}

	








j'aimerai dejà qu'à cette ligne, apre type, cela m'affiche le label du bouton radio selectionné
JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :" );


de plus, j'ai utilisé group = new ButtonGroup(); afin q'un seul bouton radio ne soit selectionné, mais au lieu de ça, quand je clique sur l'un, puis sur un autre, j'ai les 2 de selectionné, et impossible de els deselectionner..


quelqu'un pourrait il m'aider à resoudre ces différents problèmes?

merci d'avance..
A voir également:

2 réponses

Alors déjà pour le ButtonGroup tu crées un nouveau ButtonGroup a chaque boutton. Il faut que tu mettes le group = new ButtonGroup(); avant le while. Tu devrez déjà avoir un bouton en selection et pourvoir le récuérer par isSelected.
1
ok je vais essayer..;

mais comment, apres avoir mi isSelected(), recuperer la valeur du radio coché?

merci encore
0
Perso dans ce cas je stocke la valeur du bouton radio chaque fois qu'on clique dessus
ex :
String result;
[...]
for (int i = 0; i < 5; i++) {
b = new JRadioButton("Type : " + i);
b.addActionListener(this);
bg.add(b);
p.add(b);
}
jb = new JButton("Ok");
jb.addActionListener(this);
[...]
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JRadioButton) {
result = ((JRadioButton) e.getSource()).getText();
} else {
if (e.getSource() == jb) {
System.out.println(result);
}
}
}
0
oceane751 Messages postés 80 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 17 juillet 2018 > hotrod
17 avril 2007 à 17:52
ok merci

j'ai voulu ajouté un champs TextField pour chaque bouton
j'ai fait ça : TextField text = new TextField(i) ou TextField text = new TextField()

puis j'ai fait :
JOptionPane.showMessageDialog(null, "Je suis le bouton : " + bt.getText()+" " +((TextField)e.getSource()).getText());

mais ya beauoup d'erreur...
0
Merciiiiiiiiiiiiiiiiiii
0
souady youness
25 mai 2015 à 18:10
Comment je peut désélectionner une JradioButton
0
s il vous plait j aimerais bien s avoire un cours complet sur JRadioButton avec exemple et methode
0