Changer l'intitulé d'un bouton en Swing

Changer l'intitulé d'un bouton en Swing - Java - Programmation

Marsh Posté le 15-06-2005 à 10:25:59    

    Bonjour à vous amis forumers,
J'aimerais changer un bouton "GO !" en bouton "Stop", j'utilise la méthode setText()mais cela ne marche pas. On m'a dit d'utiliser validate() mais je ne sais pas où (dans ActionPerformed ou dans ajoute0 où j'ai initialisé le bouton "GO !" ). Je vous mets mon code avec en gras l'endroit du problème :
 
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.String;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
 
import java.util.NoSuchElementException;
 
 
class TestCommande extends JFrame implements ActionListener
{
 
  JLabel label = new JLabel("Bienvenue: vous pouvez tester les boutons" );
  JComboBox choix =new JComboBox();
   
  // Constructeur de la classe
  TestCommande()
    {  
  // Création des panneaux Nord (où sera le clavier virtuel) et Sud (où se trouve le panneau de commande)
      JPanel pNorth = new JPanel();
      JPanel pSouth = new JPanel();
       
 
  // Conteneur : contient l'ensemble des composants de l'interface utilisateur  
      Container interieur = getContentPane();
 
  // Contenu des Label pour le panneau Nord : ma photo tient la place du futur clavier virtuel
      ImageIcon photo = new ImageIcon("Hilton.JPG" );
      JLabel label2 =new JLabel(photo);  
      pNorth.add(label2);
      pNorth.add(new JLabel("C'est ici que se situera le clavier virtuel" ));  
      ajoute2("Espace vide", pNorth);
       
 
  // On divise le panneau Sud en une grille de 2 lignes sur 12 colonnes  
      pSouth.setLayout(new GridLayout(2, 12));
      //pSouth.setBorder(BorderFactory.createTitledBorder("Panneau de Commande :" ));
      pSouth.setBorder(BorderFactory.createMatteBorder(15, 15, 15, 15, Color.blue));
 
      // Les boutons et labels (remplissant la grille) du panneau Sud  
       
      ajoute0("GO !", pSouth);  
       
      pSouth.add(new JTextField("Optimiser un clavier",10));
      pSouth.add(new JTextField("35",10));
      pSouth.add(new JTextField("Bigramme",10));
      pSouth.add(new JTextField("Libre",10));
      pSouth.add(new JTextField("100",10));  
      pSouth.add(new JTextField("0.1",10));
      pSouth.add(new JTextField("20",10));
 
       
       
      ajoute1("Graphique", pSouth);
      ajoute3("Nbre générations :", pSouth);
      ajoute3("0", pSouth);
       
      ajoute4("Reset", pSouth);  
       
      ajoute("Mode", pSouth);
      ajoute("Taille min", pSouth);
      ajoute("Eléments", pSouth);
      ajoute("Forme", pSouth);  
      ajoute("Population", pSouth);
      ajoute("Mutation", pSouth);
      ajoute("Elitisme", pSouth);
       
      ajoute3("", pSouth);
      ajoute3("Performance :", pSouth);
      ajoute3("0", pSouth);
       
  // Ajout des panneaux au conteneur
      interieur.add(pSouth, BorderLayout.CENTER);
      interieur.add(label, BorderLayout.SOUTH);
 
      interieur.add(pNorth, BorderLayout.NORTH);
    }
 
  void ajoute(String s, JPanel pSouth)
    {
  // Permet l'utilisation des boutons
      JButton bouton = new JButton(s);      
      bouton.setBackground(Color.yellow);
 
      bouton.setActionCommand(s);
      bouton.addActionListener(this);
      pSouth.add(bouton);
 
    }
               //Permet l'utilisation du bouton "GO !"
   void ajoute0(String s, JPanel pSouth)
    {
   
      JButton b = new JButton(s);
 
      b.setBackground(Color.green);
      //Font f = new Font ("TimesRoman", Font.BOLD, 18) ;
 
      b.setActionCommand(s);
      b.addActionListener(this);
 
      pSouth.add(b);  
      //pSouth.validate();
    }

             //Permet l'utilisation du bouton "Graphique"
  void ajoute1(String s, JPanel pSouth)
    {  
      ImageIcon img = new ImageIcon("gph.jpeg" );
      JButton bt = new JButton("Graphique", img);
 
      bt.setActionCommand(s);
      bt.addActionListener(this);
      pSouth.add(bt);
    }
 
 
  void ajoute2(String s, JPanel pNorth)
    {
      JLabel espace = new JLabel(s, JLabel.CENTER);
      pNorth.add(espace);
    }
 
                //Représentation des label (performance et nbre de générations)
  void ajoute3(String s, JPanel pSouth)
    {
      JLabel espace = new JLabel(s, JLabel.CENTER);  
      espace.setBackground(Color.red);  
      espace.setOpaque(true);
      pSouth.add(espace);
    }
 
               //Permet l'utilisation du bouton "Reset"
  void ajoute4(String s, JPanel pSouth)
    {
   
      JButton reset = new JButton(s);
      reset.setForeground(Color.white);
      reset.setBackground(Color.black);
       
      reset.setActionCommand(s);
      reset.addActionListener(this);
      pSouth.add(reset);
    }
 
 
  // Réponse à l'utilisation des boutons : quel type de fenêtre de dialogue va s'ouvrir après avoir cliqué sur un bouton
 
  public void actionPerformed(ActionEvent e)
    {
     //JPanel pSouth = new JPanel();
     JButton b = new JButton("GO !" );
     String nom = e.getActionCommand();
     
     if (nom.equals("GO !" ))
 {    
             /*JOptionPane.showMessageDialog(this, "C'est parti! Vous devez appuyer sur 'Stop' pour modifier les paramètres",
          "Lancement du programme",  
          JOptionPane.PLAIN_MESSAGE);*/
       
                           
       b.setText("Stop" );
              b.setBackground(Color.red);
              b.setOpaque(true);
                 
       b.setEnabled(true);  
              validate();
 }

 
 
      else if (nom.equals("Stop" ))
 {  
      JOptionPane.showMessageDialog(this, "C'est fini!",
          "Lancement du programme",  
          JOptionPane.PLAIN_MESSAGE);
       
             //JButton b = new JButton("GO !" );
 }
 
 
      else if (nom.equals("Elitisme" ))  
 {
   String reponse;
   
   String message = "20 ";
   
   reponse = JOptionPane.showInputDialog("Changez le taux d'élitisme : 1/", message);
   
   label.setText(reponse);
 
           
   
 }
       
       
      else if (nom.equals("Mutation" ))  
 {
   String reponse;
   
   String message = "0.1";
   
   reponse = JOptionPane.showInputDialog("Changez le taux de mutation : ", message);
   
   label.setText(reponse);
   
 }
 
      else if (nom.equals("Taille min" ))  
 {
   String reponse;
   
   String message = "35";
   
   reponse = JOptionPane.showInputDialog("Modifiez la taille minimale d'une touche en pixels : ", message);
   
   label.setText(reponse);
   
 }
 
 
      else if (nom.equals("Eléments" ))  
 {
          /*boolean ok = false;
  JFileChooser fc = new JFileChooser();
  fc.setDialogTitle("Indiquez le chemin vers le fichier des bigrammes" );
  demande du chemin vers le fichier des bigrammes
  while (!ok){
  int returnVal = fc.showOpenDialog(cont);
  try{
   if (returnVal == JFileChooser.APPROVE_OPTION) {
    fichierBigramme = fc.getSelectedFile().getPath();
    ok = true;
   }
                        else{
     throw new AnnuleException("erreur fichier bigramme non choisit" );
    }
   }catch(AnnuleException ae){
    JOptionPane.showMessageDialog(cont, ae);
   }
  } */
 
 
   String reponse;
   String message = "Entrez un nouveau fichier des éléments: ";
   reponse = JOptionPane.showInputDialog(this, message);
   label.setText(reponse);
 }
 
      else if (nom.equals("Graphique" ))  
 {
   JOptionPane.showMessageDialog(this,
     "Voici le graphique représentant l'évolution de la population : ",  
     "salut",  
     JOptionPane.PLAIN_MESSAGE);  
 }
 
      else if (nom.equals("Reset" ))
 {
   int reponse = JOptionPane.showConfirmDialog(this,  
          "Voulez-vous vraiment relancer le programme en gardant les mêmes paramètres ?",  
          "Attention",  
           JOptionPane.YES_NO_OPTION);
   if (reponse == JOptionPane.YES_OPTION) label.setText("Nouvelle donne" );
   else if (reponse == JOptionPane.NO_OPTION) label.setText("Retour" );
          else  label.setText("ni l'un ni l'autre ?" );
 }
       
      else if (nom.equals("Forme" ))  
 {
          String reponse;
           
          reponse = JOptionPane.showInputDialog(null, choix);
          label.setText(reponse);
          JPanel panneau = new JPanel();
           
 
          choix.addItem("libre" );
          choix.addItem("azerty" );
          choix.addItem("rectangulaire" );
          panneau.add(choix);
     
          //panneau.add(choix);
   //JPanel panneau2 = new JPanel();
          //setLayout(new BorderLayout(15, 15));
          //add(panneau, BorderLayout.CENTER);
 
 }
 
      else if (nom.equals("Mode" ))
 {
   JOptionPane.showMessageDialog(this, "Optimiser ou Tester ?",
          "salut",  
          JOptionPane.PLAIN_MESSAGE);
 }
 
      else if (nom.equals("Population" ))  
 {
         
   String reponse;
   String message = "100";
   reponse = JOptionPane.showInputDialog("Modifiez le nombre d'individus de la population : ", message);
   label.setText(reponse);
           
 }
 
    }
 
  //private void EssaiChoixTest() {
 
     
     
 
    //JPanel panneau = new JPanel();
 
    //choix.Item("libre" );
    //choix.Item("azerty" );
    //choix.Item("rectangulaire" );  
     
     
    //panneau.add(choix);
    //setLayout(new BorderLayout(15, 15));
    //add(panneau, BorderLayout.CENTER);  
   //}
   
 
 
 
  // fonction principale permettant l'affichage de l'interface
  public static void main(String[] argv)
  {
      System.out.println("Chargement en cours..." );
 
      JFrame monCadre = new TestCommande();
      //JFrame monC = new JFrame();
 
      monCadre.addWindowListener(new WindowAdapter()
         {
     public void windowClosing(WindowEvent e)
       {  
         System.exit(0);  
       }
   });
      monCadre.pack();
      monCadre.setTitle("Clavier et Panneau de contrôle" );
      monCadre.setSize(1280, 980);
      monCadre.setVisible(true);
       
       
      /*monC.setContentPane(new EssaiChoix());
      monC.pack();
      monC.setTitle("Choississez la forme du clavier : " );
      monC.setSize(300, 200);
      monC.setVisible(true);*/
 
  }
}
 
 
C'est énervant, ce problème qui semble simple me bloque pour la suite et je vous remercie par avance pour aide précieuse :)

Reply

Marsh Posté le 15-06-2005 à 10:25:59   

Reply

Marsh Posté le 15-06-2005 à 15:56:13    

C'est bon, j'ai résolu mon problème : inutile de répondre et dsl j'ai oublié de mettre les balises code

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed