CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 janvier 2009
-
29 juin 2007 à 17:42
CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 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
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());
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 ..."
// 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);
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 ..."
CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 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 ?
CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 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 :""""