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

  FORUM HardWare.fr
  Programmation
  Java

  Probléme méthode paintComponent()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probléme méthode paintComponent()

n°1788666
kiooik
Posté le 18-09-2008 à 15:20:01  profilanswer
 

Voici mon code:
 
 
public class Fenetre  extends JFrame  
 
{    
        private JButton bouton = new JButton("Ajouter un mot" );
        private JButton bout = new JButton("Afficher la liste" );
        private JLabel label = new JLabel("Titre" );
        public JPanel pan = new Paneau();
         
     
    public Fenetre() throws IOException
    {
      setTitle("Tous mes films et jeux" );
      setSize(500,300);
      Container c = getContentPane();
       
      c.setLayout(new FlowLayout());
      c.add(bouton);
      c.add(bout);
       
     bouton.addActionListener(new BoutonListener());
     bout.addActionListener(new BoutListener());
     
       
       pan.setBackground(Color.red);
       c.add(pan);
       
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
      pan.setLayout(new BorderLayout());
     
 
     JPanel south = new JPanel();
 
      south.add(bouton);
      south.add(bout);
      pan.add(south, BorderLayout.SOUTH);
       
      label.setHorizontalAlignment(JLabel.CENTER);
 
      pan.add(label, BorderLayout.NORTH);
       
      this.setContentPane(pan);
       
     }
     
     
     class BoutonListener  implements ActionListener
     {
         private String test;
         
          public void actionPerformed(ActionEvent e)  
          {  
               test=JOptionPane.showInputDialog(null,"Entrez mot" );
               FileWriter writer = null;
 
              try{
              writer = new FileWriter("fichier.txt", true);
              writer.write(test);
               writer.write("\n" );
              }catch(IOException ex){
              ex.printStackTrace();
             }finally{
              if(writer != null)
               {try
                {
               writer.close();
               }catch (IOException ex)
               {
                }
             }
          }
        }
     }
     
  class BoutListener  implements ActionListener
    {
       
       public void actionPerformed(ActionEvent e)  
                {  
                BufferedReader LecteurBufferise = null;
    String Chemin = "fichier.txt";
    String ligneDonnee;
    boolean eof = false;
    try {
 
     
      LecteurBufferise = new BufferedReader(new FileReader(Chemin));
      while (eof != true) {
     
        ligneDonnee = LecteurBufferise.readLine();
        if (ligneDonnee != null )  
        {  if(ligneDonnee=="\n" )
           {    
         System.out.println(ligneDonnee);
           }
           else
           {
             System.out.println("Erreur" );
           }
           
        }
        else {
          eof = true;
        }
      }
    }
    catch (FileNotFoundException ex) {
      System.out.println("Fichier Non Trouvé !!" );
    }
    catch (IOException ex) {
      System.out.println("Erreur lecture ligne fichier !!" );
    }
    finally {
      try {
        LecteurBufferise.close();
      }
      catch (IOException ex1) {
        System.out.println("Erreur fermeture fichier !!" );
      }
    }
               
                }
    }
}    
 
public class Paneau extends JPanel
{  
    public void paintComponent(Graphics g)  
    {  
     super.paintComponent(g);
     g.drawString ("", 20, 30);    
    }
   
}
 
Ma fenêtre contient un bouton "Ajouter un mot" , en cliquant sur ce bouton je peux ajouter un mot dans un fichier texte.
J'aimerai que le 2eme bouton "Afficher la liste" , affiche tous les mots contenu dans mon fichier texte dans la fenêtre et non pas en console....( ce que mon code fait actuellement)
 
 Comment puis-je faire pour que la méthode paintComponent() affiche les mots contenu dans mon fichier avec g.drawString???
 
Il y a t-il une autre facon de procéder?  
 
Merci

mood
Publicité
Posté le 18-09-2008 à 15:20:01  profilanswer
 

n°1788819
artscoop
la fin des temps
Posté le 18-09-2008 à 18:52:10  profilanswer
 

Salut,
Désolé j'ai pas regardé tout ton code, mais
la question c'est de savoir comment afficher des mots dans un JComponent qui est un JPanel ?
 
La méthode simple serait, si tu arrives à récupérer tes mots à partir de ton fichier texte, d'itérer parmi ces mots, et entrer un code du genre (chuis complètement à l'aveugle, j'ai pas d'éditeur ni rien, je t'écris ce code au feeling, à toi de corriger si ça te convient) :
Dans ton paintComponent, tu fais :
 

Code :
  1. Graphics2D g2 = (Graphics2D) g;
  2. int lineHeight = g2.getFont().getAscent(); // Un truc comme ça, ça te récupère la hauteur en pixels d'une ligne de texte avec la police courante, c'est utile sachant que dans un drawString, la position y est la position de la ligne de base des caractères.
  3. int nbMots = <ton nombre de mots>;
  4. String mots[] = <ton tableau de mots, ou arraylist, vector, comme tu veux, en tout cas en-dessous t'as un toArray>;
  5. for (int indLigne=0; indLigne<nbMots; indLigne++) {
  6. g2.drawString (mots[indLigne], 0, (lineHeight+4)*(indLigne+1));
  7. }


 
Ça t'affiche tous tes mots les uns sous les autres dans ton JPanel.
Sinon si tu veux les afficher en prenant en compte le retour à la ligne, faut chercher un truc comme une classe SwingUtilities (dépréciée) ou un équivalent qui s'appelle GraphicsUtilities un truc du genre.
Désolé hein, je te dis tout sans vérifier donc c'est ptet inexact, mais ça te donne une piste  :o  
 
++ dis-moi si ça fonctionne


---------------
Site de rencontre

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

  Probléme méthode paintComponent()

 

Sujets relatifs
problème sur les spritesProblème avec PHP photo module
Problème require_onceproblème requête update
problème de contrainte Check à deux tables:Probleme avec FULLTEXT
Problème de synthaxe ...Netbeans Problème d'ouverture de formulaire sous Matisse
problème de contrainteProblème avec une boucle for
Plus de sujets relatifs à : Probléme méthode paintComponent()


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