Modifier l'affichage d'un JLabel
Résolu
Nono_1
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
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+