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

 Java Discussion :

Interaction bouton application


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut Interaction bouton application
    le code de la fenetre:
    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
     
      import java.awt.BorderLayout;  
      import java.awt.Color; 
      import java.awt.Font;
      import javax.swing.JButton;
      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JPanel;   
      import java.awt.Dimension;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
     
    public class FenInter extends JFrame implements ActionListener
    {
     
    	private BoutonInter BIr = new BoutonInter("mon bouton"); 
    	private JPanel ContInter = new JPanel();
    	private JLabel label = new JLabel("  0 0 0 0 0 0 0 ");
     
    	private int compteur = 0;  // on initialise le compteur de clics à 0 !
     
    	  public FenInter()
    	  {           
    	          this.setTitle("Interation_bouton");                  
    	          this.setSize(900,300);                                    
    	          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    	          this.setLocationRelativeTo(null);                        
    	          ContInter.setBackground(Color.black);             
    	          ContInter.setLayout(new BorderLayout());	                  
    	          ContInter.add(BIr, BorderLayout.SOUTH);  
     
    	          Font police = new Font("DigifaceWide", Font.BOLD, 40 );  
    	          label.setFont(police);                            
    	          label.setForeground(Color.red);                 
    	          label.setHorizontalAlignment(JLabel.CENTER);    
    	          ContInter.add(label, BorderLayout.NORTH);
    	          this.setContentPane(ContInter);
     
    	          this.setVisible(true);    
             }
     
    public void actionPerformed(ActionEvent arg0)   
          {                                                            
                  this.compteur++;
                  label.setText(" Vous avez cliqué " + this.compteur + " fois");
          }
     
    }
    le code du bouton :
    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
     
      import java.awt.Color;
      import java.awt.GradientPaint;
      import java.awt.Graphics;
      import java.awt.Graphics2D;
      import java.awt.Image;
      import java.awt.event.MouseEvent;
      import java.awt.event.MouseListener;
      import java.io.File;
      import java.io.IOException;
      import javax.imageio.ImageIO;
      import javax.swing.JButton;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
     
    public class BoutonInter extends JButton implements ActionListener
    {
        private String name;
     
        public BoutonInter(String strr)
        {
                super(strr);
                this.name = strr;
                this.addActionListener(this);
     
        }
     
     
       public void paintComponent(Graphics gr)  
        {
     
                Graphics2D g2dr = (Graphics2D)gr;
     
    GradientPaint gpr = new GradientPaint(0, 0, Color.gray, 0, 10, Color.gray, true);
                g2dr.setPaint(gpr);
                g2dr.fillRect(0, 0, this.getWidth(), this.getHeight());
     
                g2dr.setColor(Color.green);
                g2dr.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 /4), (this.getHeight() / 2) + 5);
     
        }
     
     
    }
    Bonjour,

    j'ai un petit problème avec mon code je veux incrémenter le compteur à chaque clic sur le bouton mais y a quelque chose que ne va pas... quelqu'un peut me dire qu'est-ce qui manque?

    Merci d'avance de m'avoir aider
    A+

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Il y a plusieurs erreurs dans votre code.

    La première est que votre bouton implémente une interface sans en implémenté ses méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Override
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub
    }
    La seconde erreur concerne l'ajout de votre "ActionListener" à votre bouton.
    En effet, il s'écoute lui-même.
    1. Cela ne pose pas de problème si vous n'aviez pas oublier l'implémenter la méthode de cette interface.
    2. Vous avez définit votre code à exécuter dans votre Frame et non dans votre bouton.
    Ce n'est donc pas la bonne personne qui écoute.
    3. Je suis contre le fait que des composants graphique implémente des Listener. Je préfère en définir un en réalisant une nouvelle classe ou en déclarer un interne.
    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
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Font;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class FenInter extends JFrame {
     
    	private BoutonInter BIr = new BoutonInter("mon bouton");
    	private JPanel ContInter = new JPanel();
    	private JLabel label = new JLabel("  0 0 0 0 0 0 0 ");
     
    	private int compteur = 0; // on initialise le compteur de clics à 0 !
     
    	public FenInter() {
    		this.setTitle("Interation_bouton");
    		this.setSize(900, 300);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLocationRelativeTo(null);
    		BIr.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				FenInter.this.compteur++;
    				label.setText(" Vous avez cliqué " + FenInter.this.compteur
    						+ " fois");
    			}
    		});
    		ContInter.setBackground(Color.black);
    		ContInter.setLayout(new BorderLayout());
    		ContInter.add(BIr, BorderLayout.SOUTH);
     
    		Font police = new Font("DigifaceWide", Font.BOLD, 40);
    		label.setFont(police);
    		label.setForeground(Color.red);
    		label.setHorizontalAlignment(JLabel.CENTER);
    		ContInter.add(label, BorderLayout.NORTH);
    		this.setContentPane(ContInter);
    	}
     
    	public static void main(String[] args) {
    		new FenInter().setVisible(true);
    	}
    }
    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
      import java.awt.Color;
      import java.awt.GradientPaint;
      import java.awt.Graphics;
      import java.awt.Graphics2D;
      import java.awt.Image;
      import java.awt.event.MouseEvent;
      import java.awt.event.MouseListener;
      import java.io.File;
      import java.io.IOException;
      import javax.imageio.ImageIO;
      import javax.swing.JButton;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
     
    public class BoutonInter extends JButton
    {
        private String name;
     
        public BoutonInter(String strr)
        {
                super(strr);
                this.name = strr;
        }
     
        @Override
       public void paintComponent(Graphics gr)  
        {
     
                Graphics2D g2dr = (Graphics2D)gr;
     
    GradientPaint gpr = new GradientPaint(0, 0, Color.gray, 0, 10, Color.gray, true);
                g2dr.setPaint(gpr);
                g2dr.fillRect(0, 0, this.getWidth(), this.getHeight());
     
                g2dr.setColor(Color.green);
                g2dr.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 /4), (this.getHeight() / 2) + 5);
     
        } 
    }
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut
    Citation Envoyé par kolodz Voir le message
    Bonjour,

    Il y a plusieurs erreurs dans votre code.

    La première est que votre bouton implémente une interface sans en implémenté ses méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Override
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub
    }
    La seconde erreur concerne l'ajout de votre "ActionListener" à votre bouton.
    En effet, il s'écoute lui-même.
    1. Cela ne pose pas de problème si vous n'aviez pas oublier l'implémenter la méthode de cette interface.
    2. Vous avez définit votre code à exécuter dans votre Frame et non dans votre bouton.
    Ce n'est donc pas la bonne personne qui écoute.
    3. Je suis contre le fait que des composants graphique implémente des Listener. Je préfère en définir un en réalisant une nouvelle classe ou en déclarer un interne.
    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
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Font;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class FenInter extends JFrame {
     
    	private BoutonInter BIr = new BoutonInter("mon bouton");
    	private JPanel ContInter = new JPanel();
    	private JLabel label = new JLabel("  0 0 0 0 0 0 0 ");
     
    	private int compteur = 0; // on initialise le compteur de clics à 0 !
     
    	public FenInter() {
    		this.setTitle("Interation_bouton");
    		this.setSize(900, 300);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLocationRelativeTo(null);
    		BIr.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				FenInter.this.compteur++;
    				label.setText(" Vous avez cliqué " + FenInter.this.compteur
    						+ " fois");
    			}
    		});
    		ContInter.setBackground(Color.black);
    		ContInter.setLayout(new BorderLayout());
    		ContInter.add(BIr, BorderLayout.SOUTH);
     
    		Font police = new Font("DigifaceWide", Font.BOLD, 40);
    		label.setFont(police);
    		label.setForeground(Color.red);
    		label.setHorizontalAlignment(JLabel.CENTER);
    		ContInter.add(label, BorderLayout.NORTH);
    		this.setContentPane(ContInter);
    	}
     
    	public static void main(String[] args) {
    		new FenInter().setVisible(true);
    	}
    }
    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
      import java.awt.Color;
      import java.awt.GradientPaint;
      import java.awt.Graphics;
      import java.awt.Graphics2D;
      import java.awt.Image;
      import java.awt.event.MouseEvent;
      import java.awt.event.MouseListener;
      import java.io.File;
      import java.io.IOException;
      import javax.imageio.ImageIO;
      import javax.swing.JButton;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
     
    public class BoutonInter extends JButton
    {
        private String name;
     
        public BoutonInter(String strr)
        {
                super(strr);
                this.name = strr;
        }
     
        @Override
       public void paintComponent(Graphics gr)  
        {
     
                Graphics2D g2dr = (Graphics2D)gr;
     
    GradientPaint gpr = new GradientPaint(0, 0, Color.gray, 0, 10, Color.gray, true);
                g2dr.setPaint(gpr);
                g2dr.fillRect(0, 0, this.getWidth(), this.getHeight());
     
                g2dr.setColor(Color.green);
                g2dr.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 /4), (this.getHeight() / 2) + 5);
     
        } 
    }
    Cordialement,
    Patrick Kolodziejczyk.
    Bonjour,
    merci de mavoir répondu ...mais je ne vois pas trop ce qui me manque dans le code de mon bouton ..vous pouvez le mettre entièrement pour voir tout ce que vous m'avez expliquer

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Sachant que votre compteur se trouve dans la frame, je code que je vous propose a déplacer l'ensemble dans la frame.
    Mon code est exécutable et fonction, je vous encourage d'ailleurs à le tester par vous même en lançant la classe FenInter où j'ai ajouter un main.

    Cordialement,
    Patrick kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WM18] Interaction entre application avec des intent
    Par guen dans le forum Windev Mobile
    Réponses: 4
    Dernier message: 10/06/2015, 16h49
  2. aide interactive pour application
    Par lartisan dans le forum Android
    Réponses: 0
    Dernier message: 02/10/2014, 09h47
  3. VBA EXCEL Interaction bouton parcourir d'une page web
    Par LuffyDM1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2014, 23h06
  4. Réponses: 0
    Dernier message: 22/09/2011, 15h00
  5. Réponses: 16
    Dernier message: 06/06/2007, 18h49

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