IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[débutant] evenement bouton + checkbox


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut [débutant] evenement bouton + checkbox
    bonjour!!!

    je galere un peu avec 2 evenements que je veux dans mon code.
    le 1er est celui d'un bouton et l'autre celui d'un Checkbox

    en effet, j'ai 2 TextField (on en prendra pas compte ici) et des CheckBox puis un bouton qui va permettre d'afficher le tout dans une fenetre.

    mais ej ne sais pas comment faut faire pour récuperer la valeur du checkbox coché car ce qui me bloque est qu'il y a 2 evenement (bouton et le checkbox)

    voici les 2 evenments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void itemStateChanged (ItemEvent evt) 
    	{
    		 Object obj = evt.getSource();
     
    		 if (obj == box)
    		 {
    		String result =	 box.getLabel();
    			 System.out.println(result);
    		 }
    		 }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void actionPerformed(ActionEvent e) 
    	{
    		if ( (Button) e.getSource() == bouton ) 
     
    		{
     
     
    			JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+box.getLabel() );
     
    }
     
    	}

    j'ai fait ça :
    JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+box.getLabel() );

    mais j'ai comme erreur :

    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)


    j'ai l'impression de tourner en rond.. car j'ai enlever ""+box.getLabel()" et j'ai plus l'erreur. et je en sais pas comment inserer le label de ma chekcbox dans le JOptionPane
    alors si quelqu'un pourrait m'aider se serai vraiment tres gentil..

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    La portion de code que tu nous montres me semble correct, il nous en faudrait donc un peu plus.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    si le getLabel() semble poser problème, alors tu peux faire autrement, c'est moins propre, mais ça marchera.
    tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String label1,label2;
    if(macaseàcocher1.isSelected()) 
    	label1=macaseàcocher1.getLabel();// ou si ça marche toujours pas, label1=lelabelcorrespondantàlacase1;
    else label2=macaseàcocher2.getLabel();// ou si ça marche toujours pas, label2=lelabelcorrespondantàlacase2;
     
    JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+label1);//ou label2

  4. #4
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    ok
    je vous met tout le code qui me permet d'effectuer un ajout dans la base de données (nom, prix, type)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
     
    public class ajout extends JFrame implements ActionListener,ItemListener
    {
     
    	private Button bouton;
    	private TextField nom, prix;
    	private JPanel panel;
    	private Checkbox box;
    	private JLabel lab;
    	private JFrame frame;
     
     
     
    	public ajout()
    	{
    		super();
    		panel = new JPanel();
    		panel.setLayout(new FlowLayout(FlowLayout.LEFT,4,2));
     
     
    		nom = new TextField("nom", 10);
    		prix = new TextField("prix €", 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","yess");
    			//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");
    				Checkbox box = new Checkbox(resul);
    				panel.add(box);
    				box.addItemListener(this);
     
    			} 
     
    		}
    		catch (Exception e){
     
    			System.out.println("echec pilote : "+e);
    		}
     
    		bouton = new Button("ajouter");
    		panel.add(bouton);
    		bouton.addActionListener(this);
     
    		JFrame frame = new JFrame();
    		frame.setContentPane(panel);
    		frame.setSize(300,300);
    		frame.setVisible(true);
     
     
    	}
     
    	public void itemStateChanged (ItemEvent evt) 
    	{
    		 Object obj = evt.getSource();
     
    		 if (obj == box)
    		 {
    		String result =	 box.getLabel();
    			System.out.println(result);
    		 }
    	}
     
     
    	public void actionPerformed(ActionEvent e) 
    	{
    		if ( (Button) e.getSource() == bouton ) 
     
    		{
     
     
    			JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :" );
     
    }
     
    	}
     
     
     
    	public static void main(String[] args) 
    	{
    		ajout aj = new ajout();
     
    	}
     
    }

  5. #5
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    Citation Envoyé par michaeljeru
    si le getLabel() semble poser problème, alors tu peux faire autrement, c'est moins propre, mais ça marchera.
    tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String label1,label2;
    if(macaseàcocher1.isSelected()) 
    	label1=macaseàcocher1.getLabel();// ou si ça marche toujours pas, label1=lelabelcorrespondantàlacase1;
    else label2=macaseàcocher2.getLabel();// ou si ça marche toujours pas, label2=lelabelcorrespondantàlacase2;
     
    JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+label1);//ou label2

    pour le isSelected(), ça ne passe pas...

  6. #6
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    si j'ai bien suivi :
    le 'box.getLabe'l tourne bien dans 'itemStateChanged' mais pas dans 'actionPerformed', c'est bien ça ?

  7. #7
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    oui cé ça

Discussions similaires

  1. [VB.NET] [débutant] couleur bouton + click .
    Par Amenos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/03/2006, 10h55
  2. Réponses: 2
    Dernier message: 20/02/2006, 13h54
  3. [debutant] Evenement bouton
    Par Rekiem dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 22/01/2006, 11h09
  4. [wxPython] evènement bouton
    Par python_man dans le forum wxPython
    Réponses: 10
    Dernier message: 16/05/2005, 14h53
  5. Réponses: 4
    Dernier message: 20/04/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo