Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
794 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème actionPerformed(ActionEvent e)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème actionPerformed(ActionEvent e)

n°1936068
absot77
Posté le 28-10-2009 à 21:18:44  profilanswer
 

Bonjour, je suis en train de me faire une interface graphique pour un cours et j'ai un problème avec mes actions, je ne comprends pas pourquoi certaines actions fonctionnent et pas d'autres, j'ai bien pensé à ajouter une action aux variables concernées..
 
Mon problème est quand je clique sur Quitter dans mon menu, ça ferme bien mais quand je clique sur Connecter ou Cancel par exemple, il ne se passe rien alors que tout est analysé dans le même actionPerformed(ActionEvent e) avec des if..
 
Voici mon code:
 

Citation :


package app;
 
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.*;
import java.awt.event.*;
 
 
public class Interface extends JFrame implements ActionListener{
 
 // Attributs
 private PopClient pop;
 private JMenuItem quitter;
 private JTextField user = new JTextField();
 private JTextField mdp = new JTextField();
 private JTextField host = new JTextField();
 private JTextField port = new JTextField();
 private JTextArea message = new JTextArea();
 private JButton connecter;
 private JButton cancel;
 
 
  // Constructeur
  public Interface()
  {
   // Donner un titre à  la fenetre
   this.setTitle("PopServer" );
   // Mettre une taille à  la fenetre (largeur,hauteur)
   this.setSize(350,175);
   // Empecher le redimensionnement de la fenetre
   this.setResizable(false);
   // Positionner la fenetre (x,y), null pour le centre
   this.setLocationRelativeTo(null);
   // L'application s'arrête lorsque la fenêtre est fermée.
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   //Fonction pour initialiser les composants
   this.init();
   // Rendre visible la fenetre
   this.setVisible(true);
  }
   
   
   
  // Fonction pour initialiser le menu
  private void init()
  {
   // Menu
   JMenuBar menubar = new JMenuBar();
   JMenu menu = new JMenu("Fichier" );
   quitter = new JMenuItem("Quitter" );
   // Ajouter le menuitem au menu
   menu.add(quitter);
   menubar.add(menu);
   quitter.addActionListener(this);
   // Positionner le menu en haut de la fenetre
   this.setJMenuBar(menubar);
   // Déclaration des JPanel
   JPanel panelRenseignements = new JPanel(new BorderLayout());
   JPanel panelBoutton = new JPanel();
   // Déclaration d'un GridLayout de 3 lignes et 2 colonnes
   panelRenseignements.setLayout(new GridLayout(4,3));
   panelRenseignements.add(new JLabel("User :" ));
   panelRenseignements.add(user);
   panelRenseignements.add(new JLabel("Mot de passe :" ));
   panelRenseignements.add(mdp);
   panelRenseignements.add(new JLabel("Host :" ));
   panelRenseignements.add(host);
   panelRenseignements.add(new JLabel("Port :" ));
   panelRenseignements.add(port);
   // Bouttons
   JButton connecter = new JButton("Connecter" );
   JButton cancel = new JButton("Cancel" );
   panelBoutton.add(connecter);
   panelBoutton.add(cancel);
   // Ajout des actions    
   cancel.addActionListener(this);
   connecter.addActionListener(this);
   // Ajout des JPanel à la JFrame
   getContentPane().add(panelRenseignements, BorderLayout.NORTH);
   getContentPane().add(panelBoutton, BorderLayout.SOUTH);
  }
   
   
   
   
   
 
  // Fonction pour vider les champs Texte
  public void clear()  
               {
     user.setText("" );
     host.setText("" );
     port.setText("" );
     mdp.setText("" );
  }
   
   
   
   
  public void actionPerformed(ActionEvent e)
   {
   if (e.getSource() == quitter)
   {
    System.exit(0);
   
   }else if (e.getSource() == connecter)
    {
     Menu fenetreMenu = new Menu();
    }else if (e.getSource() == cancel)
     {
      clear();
     }
 
   }  
 
 
}
   
   
 
 
 


 
Je m'acharne depuis quelques heures dessus mais bon, c'est ma première fenêtre graphique donc je pense que c'est normal de faire des erreurs..  :/

mood
Publicité
Posté le 28-10-2009 à 21:18:44  profilanswer
 

n°1936093
cbeyls
Hail to the King, Baby
Posté le 29-10-2009 à 01:51:05  profilanswer
 

Facile:
 

Code :
  1. JButton connecter = new JButton("Connecter" );
  2. JButton cancel = new JButton("Cancel" );


 
 
Tu redéclares en fait deux variables LOCALES qui portent le même nom que tes variables d'instance "connecter" et "cancel". Evidemment ces variables locales prennent le dessus et le compilateur ne va rien te dire puisque c'est autorisé. Le problème c'est que dans le code de ta méthode actionPerformed, tu ne testes pas les mêmes variables, tu testes en fait les variables d'instance que tu n'as pas initialisées.
 
Tu dois donc juste enlever ces redéclarations:
 

Code :
  1. connecter = new JButton("Connecter" );
  2. cancel = new JButton("Cancel" );


 
Si tu veux être certain que ce sont bien les variables d'instance qui sont assignées, tu peux même écrire:
 

Code :
  1. this.connecter = new JButton("Connecter" );
  2. this.cancel = new JButton("Cancel" );


 
 
À part cela, une classe qui s'appelle "Interface", c'est perturbant.


Message édité par cbeyls le 29-10-2009 à 01:53:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème actionPerformed(ActionEvent e)

 

Sujets relatifs
Problème avec répétitiion du On error Goto xxprobleme liens dreamweaver mozilla
[RESOLU] Probleme couleur PC et MAC en HTML!! HELP PLZ :)Problème avec un textarea
Problème d'utilisation de REPLACEProblème avec boucle while qui ne s'arrêt pas
[PHP] Include. Problème de mise en place.Problème pour déclencher un input type=file
probleme d'affichage javascriptiso8859-1 > UTF8 probleme avec a accent grave
Plus de sujets relatifs à : Problème actionPerformed(ActionEvent e)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR