Modifier l'affichage d'un JLabel
Résolu
Nono_1
Messages postés
3
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour à tous,
J'écris un petit programme en Java qui consiste à créer deux boutons dans un JPanel (le tout dans un JFrame). Je voudrais modifier l'affichage du JLabel selon sur quel bouton on appuie.
Si on appuie sur le premier bouton, j'affiche "Vous avez appuyé sur Bouton 1".
Le problème c'est que mon programme compile sans erreurs mais rien ne se passe quand j'appuie sur un bouton ou l'autre.
Voici mon code :
Quelqu'un pourrait m'aider ?
Merci d'avance,
J'écris un petit programme en Java qui consiste à créer deux boutons dans un JPanel (le tout dans un JFrame). Je voudrais modifier l'affichage du JLabel selon sur quel bouton on appuie.
Si on appuie sur le premier bouton, j'affiche "Vous avez appuyé sur Bouton 1".
Le problème c'est que mon programme compile sans erreurs mais rien ne se passe quand j'appuie sur un bouton ou l'autre.
Voici mon code :
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Cursor;
import java.awt.event.*;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
public class MaFenetrePrincipale extends JFrame implements ActionListener
{
JButton bouton1 = new JButton("Bouton 1");
JButton bouton2 = new JButton("Bouton 2");
JLabel lab = new JLabel("Bonjour le monde !"); //créer un label
public void actionPerformed(ActionEvent e1)
{
bouton1.addActionListener(this);
bouton2.addActionListener(this);
if(e1.getSource().equals(bouton1))
lab.setText("Vous avez appuyé sur Bouton 1");
else
lab.setText("Vous avez appuyé sur Bouton 2");
}
public MaFenetrePrincipale()
{
JPanel panel = new JPanel();
JButton bouton1 = new JButton("Bouton 1");
JButton bouton2 = new JButton("Bouton 2");
JLabel lab = new JLabel("Bonjour le monde !"); //créer un label
// paramètres de JFrame
this.setVisible(true);
this.setSize(500,500);
this.setLocation(100,100);
this.setTitle("Ma première fenêtre");
this.setResizable(true);
Cursor curseur = new Cursor(Cursor.DEFAULT_CURSOR);
this.setCursor(curseur);
this.setBounds(250,250,270,230);
bouton1.addActionListener(this);
// j'ajoute les deux boutons et le label à JPanel
panel.add(bouton1);
panel.add(bouton2);
panel.add(lab);
// j'ajoute le JPanel à JFrame
add(panel);
}
public static void main(String[] args)
{
MaFenetrePrincipale fenetreprincipale = new MaFenetrePrincipale();
}
}
Quelqu'un pourrait m'aider ?
Merci d'avance,
A voir également:
- Modifier l'affichage d'un JLabel
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier story facebook - Guide
- Modifier l'extension d'un fichier - Guide
- Affichage double ecran - Guide
2 réponses
J'ai résolu le problème en mettant la méthode public void actionPerformed(ActionEvent arg0) à l'extérieur du constructeur.
Donc le nouveau code qui marche est le suivant :
Bonne journée,
Donc le nouveau code qui marche est le suivant :
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Cursor;
import java.awt.event.*;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.Color;
public class MaFenetrePrincipale extends JFrame implements ActionListener
{
// instancier les objets
private JButton bouton1 = new JButton("Bouton 1");
private JButton bouton2 = new JButton("Bouton 2");
private JPanel panel = new JPanel();
private JLabel lab = new JLabel("Bonjour le monde !"); //créer un label
// constructeur
public MaFenetrePrincipale()
{
// paramètres de JFrame
this.setVisible(true);
this.setSize(500,500);
this.setLocation(600,600);
this.setTitle("Ma première fenêtre");
this.setResizable(true);
Cursor curseur = new Cursor(Cursor.DEFAULT_CURSOR);
this.setCursor(curseur);
this.setBounds(250,250,270,230);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // fermer le processus quand on appuie sur la croix rouge de la fenêtre
this.setContentPane(panel); // on dit à JFrame que son ContenPane sera "panel"
panel.setBackground(Color.ORANGE);
bouton1.addActionListener(this);
bouton2.addActionListener(this);
panel.add(bouton1);
panel.add(bouton2);
panel.add(lab);
// j'ajoute le JPanel à JFrame
add(panel);
}
public void actionPerformed(ActionEvent arg0)
{
if(arg0.getSource() == bouton1)
lab.setText("Vous avez cliqué sur le Bouton 1");
else /*if(arg0.getSource() == bouton2) */
lab.setText("Vous avez cliqué sur le Bouton 2");
}
public static void main(String[] args)
{
// créer une instance de la fenêtre
MaFenetrePrincipale fenetreprincipale = new MaFenetrePrincipale();
}
}
Bonne journée,
Bonne journée également.
A+