Help Java

Résolu
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 29 juin 2007 à 17:42
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 2 juil. 2007 à 16:11
Salut à Tous. Désolé de vous déranger mais j'ai absolument besoin d'aide!!!!


J'ai un programme qui demande de saisir Nom Prenom et Adresse


Donc j'ai crée une fenetre avec les JTextField et deux boutons OK et Annuler.


J'aimerai ke lorsqu'on remplit ce formulaire, des qu'on appuie sur OK, les infos saisies soient stockes dans un fichier .TXT et pas autre chose.


Et kil  l'affiche de cette facon   Nom:  "ce kon a rempli dans la fenetre" 
                                               Prenom:"idem"
                                               Adresse:"idem qu'au-dessus"

Je n'arrive pas a utiliser Print ou PrintWriter

if(evt.getSource()==ok){  et là je ne sais pas}
Merci d'avance a tous et a toutes

7 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 juin 2007 à 23:41
Salut,

nan ici c'est pour l'exemple....

tiens voici un petit code d'exemple tout simple (tu devras l'adapter à ton code) :
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Test extends JFrame implements ActionListener {
    private static final long    serialVersionUID    = 598150674250591511L;
    private JTextArea            area                = null;
    private JButton                save                = null;

    public Test() {
        area = new JTextArea();
        // pour ajuster le texte dans la zone de saisie
        area.setWrapStyleWord(true);
        area.setLineWrap(true);

        save = new JButton();
        save.setText("Save");
        save.addActionListener(this);

        // pour pouvoir scroller sur le text ^^
        JScrollPane pane = new JScrollPane();
        pane.getViewport().add(area);
        pane.setPreferredSize(new Dimension(250, 200));

        // place les composants (tu peux zapper cette etape si tu ne comprend
        // pas)
        JPanel panel = new JPanel();
        panel.setLayout(new GridBagLayout());

        GridBagConstraints gridArea = new GridBagConstraints();
        gridArea.fill = GridBagConstraints.BOTH;
        gridArea.gridx = 0;
        gridArea.gridy = 0;
        gridArea.insets = new Insets(10, 10, 5, 10);

        GridBagConstraints gridSave = new GridBagConstraints();
        gridSave.gridx = 0;
        gridSave.gridy = 1;
        gridSave.insets = new Insets(5, 10, 10, 10);

        panel.add(pane, gridArea);
        panel.add(save, gridSave);

        setContentPane(panel);

        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }

    public void actionPerformed(ActionEvent e) {
        // action sur le bouton 'save'
        if (e.getSource().equals(save)) {
            // petit teste pour ne pas ecrire un texte vide
            String data = area.getText();            if (data null || data.compareTo("") 0) {
                JOptionPane.showMessageDialog(this, "Empty area", "Error",
                        JOptionPane.ERROR_MESSAGE);
                return;
            }
            // passe le chemin sur le repertoire home
            JFileChooser ch = new JFileChooser(System.getProperty("user.home"));
            // pas obligatoire mais je ne veux pas faire de filtre
            ch.setAcceptAllFileFilterUsed(true);
            // ici c'est pour créer un fichier donc pas besoin de valider la
            // selection d'un rep
            ch.setFileSelectionMode(JFileChooser.FILES_ONLY);
            // ouverture de la fenetre de save
            int result = ch.showSaveDialog(this);
            // il y a eu une selection valide
            if (result == JFileChooser.APPROVE_OPTION) {
                File destFile = ch.getSelectedFile();
                if (destFile == null) {// petite secu
                    JOptionPane.showMessageDialog(this, "Null file", "Error",
                            JOptionPane.ERROR_MESSAGE);
                    return;
                }
                // pour le mode d'ouverture
                boolean append = false;
                // petite question pour le fun (pas obligatoire), cette etape
                // permet de choisir si on ecrase le fichier
                // ou si on ajoute en fin de fichier
                int ret = JOptionPane.showConfirmDialog(this,
                        "<html>Yes for append
No for erase</html>",
                        "Question", JOptionPane.YES_NO_OPTION,
                        JOptionPane.QUESTION_MESSAGE);
                if (ret == JOptionPane.YES_OPTION)
                    append = true;
                // maintenant on va ecrire le fichier et enregistrer le text
                // saisi
                try {
                    PrintWriter pw = new PrintWriter(new FileOutputStream(
                            destFile, append));
                    // ecriture du texte
                    pw.println(data);
                    pw.close();
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(this, "Exception : "
                            + ex.getMessage(), "Error",
                            JOptionPane.ERROR_MESSAGE);
                    return;
                }
            }
        }
    }

    public static void main(String[] args) {
        new Test().setVisible(true);
    }

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 juin 2007 à 18:55
Salut,

tu fais quoi et comment ? sans code on ne risque pas de t'aider, enfin de donner la réponse la plus adaptée a ton code...

Sinon concernant l'ecriture de ta question :
Tu es sur un forum pas un portable !
Ici, on parle un langage que les humains peuvent comprendre...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
29 juin 2007 à 19:34
ok voici mon programme;et désolé du derangement

public class Fiche extends JPanel implements ActionListener {
 JButton annuler,ok;
      
 Fiche()
 {
  // Création d'un panneau pour les labels de 4 lignes et 1 colonne
  annuler=new JButton("Annuler");
  annuler.addActionListener(this);


        JPanel panneauLabels = new JPanel(new GridLayout(4,2,15,15));
  panneauLabels.setBorder(new TitledBorder("Présentez-vous"));
  panneauLabels.add(new JLabel("Nom"));
  panneauLabels.add(new JTextField(10));
  panneauLabels.add(new JLabel("Prenom"));
  panneauLabels.add(new JTextField(10));
  panneauLabels.add(new JLabel("Adresse "));     
     panneauLabels.add(new JTextField(10));
     panneauLabels.add(new JButton("OK"));
     panneauLabels.add(annuler);
       
// Utilisation sur le panneau courant du layout BorderLayout avec un écart de 5 pixels
  setLayout(new BorderLayout(20,20));
  add(panneauLabels);
  
 }
    public void actionPerformed(ActionEvent evt)
    {
      if(evt.getSource() == annuler)
         {
     /* demande de confirmation-> creation d'une boite de dialogue */
      boolean choix = JOptionPane.showConfirmDialog 
(null,"Voulez-vous quitter l'application?","Quitter",JOptionPane.YES_NO_OPTION)==0;
                if(choix == true)
                  System.exit(0);  /*si on clique sur OK, la fenetre se ferme */
           }
      
//      if(evt.getSource()==ok)
//      {
//          voila ou je bloque
//      }    
     }
 public static void main(String[] args) {
  
  JFrame fenetre = new JFrame("Fenetre");
  JPanel panneauLabels = new JPanel();
  
  // Récupération du conteneur de la fenêtre (java.awt.Container).
  Container panneau = fenetre.getContentPane();
  panneau.setLayout(new FlowLayout(FlowLayout.LEFT,50, 50));
  
  // Création du panneau de la Phase 1 avancé
  Fiche lePanneauPersonne = new Fiche();
  panneau.add(lePanneauPersonne);
 
  fenetre.pack();
  fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  fenetre.show();
  }
}
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
29 juin 2007 à 19:36
Oui je sais mais c'est la première fois que je demande de l'aide comme ça directement sur le Web.

Merci encore
0

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

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 juin 2007 à 19:48
Salut,

import java.io.FileOutputStream;
import java.io.PrintWriter;
[...]

if(evt.getSource().equals(ok))  {
    try {
      //change ce flag si tu ne veux pas ajouter ton texte
      //en fin de fichier
      boolean append = true;
      PrintWriter pw = new PrintWriter(new FileOutputStream("NomDuFichier", append));
      pw.println("ligne1");
      pw.println("ligne2");
      //....
  } catch(Exception e) {
    e.printStackTrace();
  }
}   
[...]

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
29 juin 2007 à 23:03
Merci infiniment pour cette aide mais j'ai encore une derniere chose à te demander:
(je reconnais je suis un boulet ) Ou est-ce que je fais un JFileChooser pour enregistrer ces données'et lorsque tu écris ligne1,ligne2 faut l'affecter à chacuns des trois champs ?

Encore désolé du dérangement et merci
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
2 juil. 2007 à 16:11
Salut,
Merci beaucoup, j'ai très bien compris ton exemple!!!! J'ai réussi à utiliser ton programme!!
Sympa et encore une fois désolé de t'avoir dérangé.
A+
Vraiment t un :""""
0
Rejoignez-nous