A propos les cliks sur les bouton dans java

Résolu
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012 - 1 avril 2012 à 19:25
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012 - 2 avril 2012 à 20:46
Bonjour,
S'il vous plais j'i une question qui parait assez facile mais j'ai pas arrivé à la faire. En fait j'ai un fichier txt qui contient plusieurs ligne. et j'ai une interface java qui contient un bouton et un espace blanc(textField). Ma question c'est comment faire pour a chaque fois que je clik sur le bouton il m'affiche la ligne dans l'espace blanc.
En fait j'ai essayé de deux façon et ça n'a pas marché:
1- Le programme suivant m'affiche seulement la dernière ligne
public void actionPerformed(ActionEvent e)
{
String ch ="";

try{
BufferedReader br= new BufferedReader(new FileReader("result1.txt"));

while((ch=br.readLine())!=null){
if(e.getSource()==b1)
{
T1.setText(""+ch);

}
}
}
catch(FileNotFoundException g)
{
System.out.println("eee");
}
catch(IOException f)
{
System.out.println("fff");
}
}
2- Ce programme m'affiche seulement la première ligne
public void actionPerformed(ActionEvent e)
{
String ch ="";

try{
BufferedReader br= new BufferedReader(new FileReader("result1.txt"));

ch=br.readLine();
if(e.getSource()==b1)
{
T1.setText(""+ch);

}
br.readLine();

}
catch(FileNotFoundException g)
{
System.out.println("eee");
}
catch(IOException f)
{
System.out.println("fff");
}
}

Est ce que quelqu'un à une idée comment faire pour résoudre ce problème
et merci d'avance.

6 réponses

Utilisateur anonyme
2 avril 2012 à 13:59
Re,

Je n'ai pas eu le temps de terminer, mais tu as l'essentiel:

   import javax.swing.*; 
   import java.awt.*; 
   import java.awt.event.*;
   import java.io.BufferedReader;
   import java.io.FileReader;
   import java.io.IOException;
   import java.io.FileNotFoundException;

   public class FenBoutonLireTxt extends JFrame implements ActionListener 
   { 
      private JButton lireUneLigne; 
      private JButton fin;
      private static BufferedReader br;
      private String ligne = "";
      
      public FenBoutonLireTxt() 
      { 
         setTitle ("LIRE UN FICHIER .txt"); 
         setSize (300, 200) ; 
         getContentPane().setLayout(new FlowLayout());
      
         lireUneLigne = new JButton ("LIGNE SUIVANTE");
         getContentPane().add(lireUneLigne); 
         lireUneLigne.addActionListener(this);
         
         fin = new JButton ("FIN"); 
         getContentPane().add(fin); 
         fin.addActionListener(this);
      }
      
      public void lireLigne()
      {
         try
         {
            if((ligne = br.readLine())!=null)
               System.out.println("Ligne lue = " + ligne); //Remplacer par T1.setText(ligne);
            else
               System.out.println("Fin de fichier");
         }
            catch(IOException ioe)
            {
               System.out.println("IOException");
            }
      }
      
      public void actionPerformed( ActionEvent e)
      {
         ligne = "";
      
         Object qui = e.getSource();
      
         if(qui == lireUneLigne)
            lireLigne();
         else
            if(qui == fin) 
            {
               System.out.println("FIN FIN FIN FIN");
               System.exit(0);
            } 
      }
   
      public static void main (String args[]) 
      {
         try
         {
            br = new BufferedReader(new FileReader("fichier.txt"));
         }
            catch(FileNotFoundException g)
            {
               System.out.println("Fichier non trouvé");
            }
         FenBoutonLireTxt fen = new FenBoutonLireTxt() ; 
         fen.setVisible(true) ;
         
         fen.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      }
   }



...\ Dan /...
3
Utilisateur anonyme
2 avril 2012 à 01:29
Salut,
1- "Le programme suivant m'affiche seulement la dernière ligne"

C'est normal tu lis ton fichier dans un boucle While jusqu'à la fin tout en envoyant chaque ligne lue dans le même JTextField T1:
ainsi la 2ème ligne remplace la 1ère dans T1, la 3ème remplace la 2ème, ... et la dernière l'avant dernière.

Il faudrait que tu utilises JTextArea qui peut contenir plus d'une ligne contrairement au JTextField.



2- "Ce programme m'affiche seulement la première ligne"


À toi de voir pourquoi...

Cordialement,
...\ Dan /...
0
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012
2 avril 2012 à 02:13
Bonsoir,
Merci pour l'aide mais vous n'avez pas compris mon problème. Ce que je veux que a chaque fois que j'appuis sur le bouton le textField m'affiche la première ligne et passe à la suivante. autrement dit, je Click sur le bouton il m'affiche la première ligne puis je Click une autre fois il m'affiche la deuxième ligne puis une troisième fois il m'affiche la troisième ligne et ainsi de suite jusqu'à la fin de fichier.
Merci d'avance
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
2 avril 2012 à 11:06
Salut,

Alors je dirais que tu dois lire ton fichier et mettre chaque ligne dans une liste ou dans un vecteur;
et quand tu cliques sur le bouton, tu affiches l'élément de ta liste/ de ton vecteur suivant...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
2 avril 2012 à 19:31
Ps,

Le petit code donné ci-dessus et compilable et exécutable.
Ce qui n'est pas encore fait c'est la JTextField, l'affichage dans T1 (attention au nom, t1 serait mieux) est simulé par println à chaque clique sur le bouton...


...\ Dan /...
0
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012
2 avril 2012 à 20:46
Bonsoir,
Merci bien danimo ça marche très bien.
0
Rejoignez-nous