Fichier Java

CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 4 juil. 2007 à 15:33
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 4 juil. 2007 à 18:38
Salut à tous et à toutes, j'ai un gros problème :  j'ai un formulaire à faire en java avec des boutons radios, et je dois écrire tout ce ke j'entre dans un fichier.txt , j'ai utilisé un PrintWriter pour écrire les infos dans mon fichier .txt mais je n'arrive pas à faire de "if" dans mon exception( comme vous savez  printWriter exige un try et catch(une exception)).

Voila.

Merci d'avance.

11 réponses

eplanet Messages postés 112 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 19 septembre 2007
4 juil. 2007 à 15:43
Comment ça tu ne peux pas faire de if ? Quelle est l'erreur de compilation que cela génère ? Pourrais-tu poster le code qui pose problème ?

Vince
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 juil. 2007 à 15:43
Salut,
j'ai pas cerner le problème mais on peut très bien écrire :

try {
    if (COND) {
       INSTR
    }
}
catch (Exception e) {
}

ou

if (COND) {
    try {
       INSTR
    }
    catch(Exception e) {
    }
}
http://kysicurl.free.fr/
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
4 juil. 2007 à 16:18
Ne lisez pas les deux programmes du dessus Je suis Archi Désolé.:(:(
Encore Merci

public class Programme extends JPanel implements ActionListener
{
JRadioButton Login,Password;
JButton ok,valider;
JTextField login,password;

/* Constructeur de la classe Programme */
Programme()
{
Login = new JRadioButton("Login");
Login.addActionListener(this);

Password = new JRadioButton("Password");
Password.addActionListener(this);

login = new JTextField(10);
password= new JTextField(10);

ok=new JButton("OK");
ok.addActionListener(this);

valider = new JButton("Valider");
valider.addActionListener(this);

// Récupération du conteneur de la fenêtre (java.awt.Container).
JPanel panneauSaisie = new JPanel( new GridLayout(2,4,5,5));

// Ajout des 2 labels, d'un champ de saisie et de deux boutons
panneauSaisie.add(Login);
panneauSaisie.add(login);
panneauSaisie.add(new JLabel());
panneauSaisie.add(new JLabel());
panneauSaisie.add(Password);
panneauSaisie.add(password);
panneauSaisie.add(ok);
panneauSaisie.add(valider);

setLayout(new BorderLayout(20,20));
add(panneauSaisie,BorderLayout.NORTH);
}

static class Structure
{
static String LOGIN;
}
static class Motdepasse
{
static String PASSWORD;
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==Login)
{
login.setEnabled(true);
password.setEnabled(false);
}
if(evt.getSource()== Password)
{
login.setEnabled(false);
password.setEnabled(true);
}
if(evt.getSource()==ok)
{
Structure.LOGIN = login.getText();
Motdepasse.PASSWORD=password.getText();
}

if(evt.getSource()== valider )
{
//passe le chemin sur le repertoire home
JFileChooser ch = new JFileChooser();
// 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)
{
//Warning pour l'enregistrement si on oublie d'inscrire un nom
JOptionPane.showMessageDialog(this, "Null file", "Error",JOptionPane.ERROR_MESSAGE);
return;
}
//pour le mode d'ouverture
boolean append = false;

try
{
PrintWriter pw = new PrintWriter(new FileOutputStream(destFile, append));
// ecriture du texte
if(evt.getSource()==Login)
{
login.setEnabled(true);
password.setEnabled(false);

//VOILA MON PROBLEME JE N'ARRIVE PAS A ECRIRE QUE LE CHAMP LOGIN


pw.println( Structure.LOGIN + "\r");
}
pw.println( Motdepasse.PASSWORD + "\r");
pw.close();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(this, "Exception : "
+ ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
return;
}
}

}
}
public static void main(String[] args)
{
// Création de la fenêtre (javax.swing.JFrame).
JFrame fenetre = new JFrame("Paramètres");
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é
Programme nouvoPanneau = new Programme();
panneau.add(nouvoPanneau);

// Calcul de la taille préférée de la fenêtre en fonction de son contenu.
fenetre.pack();

// Affichage de la fenêtre.
fenetre.show();
}

}
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 juil. 2007 à 16:25
    //VOILA MON PROBLEME JE N'ARRIVE PAS A ECRIRE QUE LE CHAMP LOGIN
-> remplacez
pw.println( Motdepasse.PASSWORD + "\r");
par
else { pw.println( Motdepasse.PASSWORD + "\r"); }

http://kysicurl.free.fr/
0

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

Posez votre question
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
4 juil. 2007 à 16:38
Un mot Kysic: MERCI

GRAVVVE SYMPA TU ME SAUVES.

Et Merci aux autres aussi
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 juil. 2007 à 17:00
Salut,

je viens d'enlever les 2 programme inutiles ^^

autre
chose qui n'a absolument rien à voir avec ton prob d'écriture, oublie
le fenetre.show() qui est deprecated mais utilises la méthode
setVisible soit pour ton code ça donne fenetre.setVisible(true);

maintenant on reprend depuis le début et surtout ta méthode actionPerformed qui est super mal structuré :

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
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.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class Programme extends JPanel implements ActionListener {
    JRadioButton    Login, Password;
    JButton            valider;
    JTextField        login, password;

    /* Constructeur de la classe Programme */
    Programme() {
        Login = new JRadioButton("Login");
        Login.addActionListener(this);

        Password = new JRadioButton("Password");
        Password.addActionListener(this);
       
        //dans la méthode action tu fais un traitement exclusif
        //soit le login soit le mot de passe alors pas besoin de pouvoir les selectionner en meme temps....
        //juste c'est 3 lignes empechent la sélection des 2 radiobutton
        ButtonGroup group = new ButtonGroup();
        group.add(Login);
        group.add(Password);

        login = new JTextField(10);
        password = new JTextField(10);

        valider = new JButton("Valider");
        valider.addActionListener(this);

        // Récupération du conteneur de la fenêtre (java.awt.Container).
        JPanel panneauSaisie = new JPanel(new GridLayout(2, 4, 5, 5));

        // Ajout des 2 labels, d'un champ de saisie et de deux boutons
        panneauSaisie.add(Login);
        panneauSaisie.add(login);
        panneauSaisie.add(new JLabel());
        panneauSaisie.add(new JLabel());
        panneauSaisie.add(Password);
        panneauSaisie.add(password);
        panneauSaisie.add(valider);

        setLayout(new BorderLayout(20, 20));
        add(panneauSaisie, BorderLayout.NORTH);
    }

    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource() == Login) {
            login.setEnabled(true);
            password.setEnabled(false);
        }
        else if (evt.getSource() == Password) { //pourquoi faire tout les cas quand tu fait une action sur un bouton bien préci ??????
            login.setEnabled(false);
            password.setEnabled(true);
        }
        //le ok ne sert absolument à rien
        else if (evt.getSource() == valider) {
            if(Login.isSelected() || Password.isSelected()) {// inutile de faire le traitement si c'est pas pour écrire dedans......
                //passe le chemin sur le repertoire home
                JFileChooser ch = new JFileChooser();
                // 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) {
                        //Warning pour l'enregistrement si on oublie d'inscrire un nom
                        JOptionPane.showMessageDialog(this, "Null file", "Error",
                                JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    //pour le mode d'ouverture
                    boolean append = false;
   
                   
                    try {
                        PrintWriter pw = new PrintWriter(new FileOutputStream(
                                destFile, append));
                        // ecriture du texte
                        if(Login.isSelected())//tu as sélectionné le login
                            pw.println(login.getText());//tu peux ecrire le texte de login
                        else if(Password.isSelected())//tu as sélectionné le mot de passe
                            pw.println(password.getText());
                        pw.close();
                    } catch (Exception ex) {
                        JOptionPane.showMessageDialog(this, "Exception : "
                                + ex.getMessage(), "Error",
                                JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
            }

        }
    }

    public static void main(String[] args) {
        // Création de la fenêtre (javax.swing.JFrame).
        JFrame fenetre = new JFrame("Paramètres");
        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é
        Programme nouvoPanneau = new Programme();
        panneau.add(nouvoPanneau);

        // Calcul de la taille préférée de la fenêtre en fonction de son contenu.
        fenetre.pack();
        // Affichage de la fenêtre.
        fenetre.setVisible(true);
    }

}

PS: ATTENTION aux règles de nommage java

------------------------------------
"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
4 juil. 2007 à 17:46
Salut Twinuts,
Je suis vraiment désolé de toutes ces erreurs.Je reconnais je suis vraiment un boulet en prog, ca fait deux ans que j'en fais et j'ai encore des difficultés.


Je sais meme plus koi te dire a part toujours merci

A plus.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 juil. 2007 à 17:59
Salut,

bah c'est rien t'inquite pas ^^, de plus je ne dis pas ça pour que tu le prennes pour toi, je le dis simplement pour que tu puisses comprendre pourquoi tu part en while dans des problèmes assez bête et ainsi t'aider a ne plus avoir ce genre de problèmes

------------------------------------
"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
4 juil. 2007 à 18:16
Oui mais kan meme c un peu cho detre en ecole dingé, de decouvrir linfo ke depuis 2 ans et de savoir fer ke des calcuuuuuuls(car jadore les maths donc si un jour ta besoin HESIIIIIIIIIITE PAAAAAAAAAAAAS).

Voila
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
4 juil. 2007 à 18:21
RE Salut Twinuts, pour info tu dois te demander ke je pose des questions sur des programmes ki à l abase sont pas compliquées : bah c fait exprès car j' ai un tres gros projet à finir pour dans un mois et je le fais petit à petit, quand je comprends pas qqhose j'essaie d'ecrire un programme tout simple qui m'eclaircit.Et apres j'arrive à reutiliser cet exemple pour mon projet. Voila c une technik kon ma di de fer.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 juil. 2007 à 18:38
Salut,

c'est pas plus mal d'y aller à taton mais tu perds du temps....

PS:Merci d'écrire en français et non en SMS.

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

OoWORAoO
0
Rejoignez-nous
A voir également