Problême Actionperformed() java !!?

Fermé
mehdimskn Messages postés 4 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 janvier 2011 - 15 janv. 2011 à 18:23
mehdimskn Messages postés 4 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 janvier 2011 - 16 janv. 2011 à 16:03
Bonjour à tous ,

J'essaye de créer une petite application en java, l'idée est qu'on à une fenetre, avec une zone de texte (textarea), et un bouton enregistrer. Et donc quand on clique sur le bouton le texte s'enregistre dans un fichier "fichier.txt".

Sauf que j'ai un problème avec les actionListner , et actionperformed, d'ou le titre :).

je n'ai pas pu passer en argument ma zone de texte à la méthode actionperformed.

j'ai finalement trouvé un moyen d'avoir un code qui compile et qui s'exécute sauf qu'il ne fait pas ce qui est attendu. je vous met mon code j'espère que vous pourrez m'aider.

Je vous remercie par avance pour toute réponse.

Voici mon code :


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;


public class Tp extends JFrame implements ActionListener {


JPanel pan = new JPanel();
JButton but = new JButton("SAUVEGARDER");

public Tp(){

this.setTitle("TP NOTE");
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setContentPane(pan);
this.setVisible(true);





//On définit le layout à utiliser sur le contentPane
pan.setLayout(new BorderLayout());

//On ajoute le bouton au contentPane de la JFrame

pan.add(but, BorderLayout.SOUTH);
//ajoute un listener : ici le listener est cette classe

but.addActionListener(this);

}



public void actionPerformed(ActionEvent e)
{

JTextArea jta = new JTextArea("TEXTE");
pan.add(jta , BorderLayout.CENTER);
jta.setEditable(true);
jta.setForeground(Color.BLUE);

try{
//ouverture du fichier
File f = new File("fichier.txt");
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException ex) {
System.err.println("Erreur de création du fichier");
}
}

FileOutputStream fos = new FileOutputStream(f, true);
PrintWriter pw = new PrintWriter(fos);
pw.println(jta.getText());
pw.close();
}catch(IOException ex)
{
}


}


public static void main(String[] args){

Tp fen = new Tp();

}
}





A voir également:

3 réponses

Utilisateur anonyme
16 janv. 2011 à 09:26
Salut,

Un petit exemple:

   import java.awt.FlowLayout;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;

   import javax.swing.JFrame;
   import javax.swing.JPanel;
   import javax.swing.JButton;

   public class FenetreBoutonsListener extends JFrame implements ActionListener{
      private JButton bouton;
      private JButton bouton2;
   	
      public FenetreBoutonsListener(){
         super();
      
         build();//On initialise notre fenêtre
      }
   
      private void build(){
         setTitle("Fenêtre qui affiche des boutons"); //On donne un titre à l'application
         setSize(320,240); //On donne une taille à notre fenêtre
         setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
         setResizable(true); //On permet le redimensionnement
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setContentPane(buildContentPane());
      }
   
      private JPanel buildContentPane(){
         JPanel panel = new JPanel();
         panel.setLayout(new FlowLayout());
      
         bouton = new JButton("Cliquez ici !");
         bouton.addActionListener(this);
         panel.add(bouton);
      		
         bouton2 = new JButton("Ou là !");
         bouton2.addActionListener(this);
         panel.add(bouton2);
      
         return panel;
      }
   
      public static void main(String[] args) {
      //On crée une nouvelle instance de notre FenetreBoutons
         FenetreBoutonsListener fenetre = new FenetreBoutonsListener();
         fenetre.setVisible(true);//On la rend visible
      }
/////////////////////////////////////////////////////////////////////////////
      public void actionPerformed(ActionEvent e) { // <<<< c'est ici
         Object source = e.getSource();
      
         if(source == bouton){
            System.out.println("Vous avez cliqué ici.");
         } 
         else if(source == bouton2){
            System.out.println("Vous avez cliqué là.");	
         }
      }
   }
/////////////////////////////////////////////////////////////////////////////



Cordialement,

Dan
0
mehdimskn Messages postés 4 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 janvier 2011
16 janv. 2011 à 15:19
Merci pour ta réponse Dan,

Ton exemple est assez simple, ce n'est pas ce que je demande. Je veut faire une fenêtre avec un bouton et une zone de texte, et quand on clique sur le bouton on sauvegarde le texte dans un fichier txt.

Si tu peux m'aider un peu à voir ce qui ne va pas dans mon code ? :)
0
mehdimskn Messages postés 4 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 janvier 2011
16 janv. 2011 à 16:03
Finalement j'ai réussi, grâce à Dan bien sur ton code est bien organisé donc on voit tout de suite ce qui ne va pas j'ai pris ton code et je l'ai adapté a ce que je voulais.

Merci je vais coder plus proprement maintenant :)


RESOLU
0