Java

CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 6 juil. 2007 à 10:29
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 6 juil. 2007 à 18:37
Salut à tous désolé de vous déranger mais j'ai deux gros problemes:  je n'arrive pas à gérer deux boutons cases à cocher en java  en effet je voudrais qu'il y ait un évènement dès lors que les deux boutons sont décochés .  De plus j'aimerais réinitialiser deux champs mais je ne sais absolument pas comment m'y prendre.  Voila Merci d'avance à tous

Voici le code

/*Programme permettant de remplir un mini formulaire et de l'écrire dans un fichier.txt */

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;


public class Programme extends JPanel implements ActionListener
{
   JCheckBox Login,Password;
      JButton ok,valider,nouveau;
      JTextField login,password;
     
/* Constructeur de la classe Programme */ 
 Programme()
 {
  Login = new JCheckBox("Login");
  Login.addActionListener(this);
  
  Password = new JCheckBox("Password");
  Password.addActionListener(this);


  login = new JTextField(10);
  password= new JTextField(10);
  
  nouveau = new JButton("Nouveau");
  nouveau.addActionListener(this);
  
  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(nouveau);
  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(Login.isSelected())
  {
   login.setEnabled(true);
   password.setEnabled(false);
  }
  else if(Password.isSelected())
  {
   login.setEnabled(false);
   password.setEnabled(true);
  }
//  Probleme si je decoche les deux boutons normalement
//  je voudrais ecrire sur les deux champs mais cela ne marche pas
  
  else if(evt.getSource()!= login &&  evt.getSource()!= password)
  {
   login.setEnabled(true);
   password.setEnabled(true);
  }


  
  
  else if(evt.getSource()==ok)
  {
   Structure.LOGIN = login.getText();
   Motdepasse.PASSWORD=password.getText();
  }
// J'aimerai grâce à ce bouton "Nouveau" :
// réinitialiser les champs autant de fois que je veux
// une fois ces champs reinitialiser, j'écris un deuxieme mot qui sera écrit
// dans mon fichier texte juste en dessous du premier
  
//J'ecris "Bonjour",je reinitialise grâce à nouveau,
//j'ecris un autre mot "Bonsoir" par exemple et il ecrit dans le fichier :
  //Bonjour
  //Bonsoir
//J'aimerai faire une boucle mais je ne sais absolument pas comment m'y prendre
//Merci d'avance pour votre aide
  
     else if( nouveau.isSelected() )
     {
      
      
     }
   
  
     else if(valider.isSelected() )
  {
   //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())
           {pw.println( Structure.LOGIN + "\r");}
             else if(Password.isSelected())
                {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.setVisible(true);


  }


}

9 réponses

CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juil. 2007 à 10:32
Re-Salut.

Oui je sais je suis vraiment nul en programmation.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 juil. 2007 à 12:11
Salut,

déjà commence à reprendre l'exemple que je t'ai donné sur ton ancien topic....... parce que ta méthode
actionPerformed est archi fausse de plus tes 2 classes : Structure et Motdepasse sont anti programation et ne servent absolument à rien....

------------------------------------
"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
6 juil. 2007 à 14:29
Salut, voila le programme amélioré et donc si vous pouvez m'aider merci d'avance


import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;
import javax.*;

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

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

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

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

nouveau = new JButton("Nouveau");
nouveau.addActionListener(this);

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(nouveau);
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);
}

public void actionPerformed(ActionEvent evt)
{
if(Login.isSelected())
{
login.setEnabled(true);
password.setEnabled(false);
}
else if(Password.isSelected())
{
login.setEnabled(false);
password.setEnabled(true);
}
// probleme si je decoche les deux boutons normalement
// je voudrais ecrire sur les deux champs mais cela ne marche pas

else if(evt.getSource()!= login && evt.getSource()!= password)
{
login.setEnabled(true);
password.setEnabled(true);
}

// Ici j'aimerais reinitialiser les champs à l'aide du bouton nouveau et
// apres avoir reinitialiser les champs et donc une fois avoir rempli
// les champs ils seront ecrits juste en-dessous des precédents mots
// c'est pour cela que j'ai mis un bouton OK pour qu'il puisse stocker
// les premieres valeurs
//
// else if( nouveau.isSelected() )
// {
//
//
// }

// En resumé je voudrais ecrire une premiere fois puis grace au bouton
// "Nouveau" reinitialiser les champs et apres ecrire un autre mot qui
// sera entré dans le meme fichier en dessous du premier mot

// "Salut"
//Appui sur Nouveau
//Champ reinitaliser
//"Ca va "

// et dans notre fichier.txt on retrouve Salut et Ca va l'un
// en-dessous de l'autre
if(valider.isSelected() )
{

if(Login.isSelected() || Password.isSelected())
{
//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())
{pw.println( login.getText() + "\r");}
else if(Password.isSelected())
{pw.println( password.getText() + "\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.setVisible(true);

}

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

désolé mais tu n'as absolument rien compris à l'utilisation de la méthode actionPerformed et tu fais des traitements hors contexte..... tu ferais mieux avant de continuer de comprendre ce que tu fais et tu utilise et surtout de comprendre reelement à quoi sert et comment s'utilise la méthode actionPerformed....

sinon :

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.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

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

    Programme() {
        Login = new JCheckBox("Login");
        Login.addActionListener(this);

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

        login = new JTextField(10);
        login.setEnabled(false);
        password = new JTextField(10);
        password.setEnabled(false);
       
        nouveau = new JButton("Nouveau");
        nouveau.addActionListener(this);

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

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

        JPanel panneauSaisie = new JPanel(new GridLayout(2, 4, 5, 5));

        panneauSaisie.add(Login);
        panneauSaisie.add(login);
        panneauSaisie.add(nouveau);
        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);
       
    }

    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource().equals(Login)) {
            login.setEnabled(Login.isSelected());
        }
        else if (evt.getSource().equals(Password)) {
            password.setEnabled(Password.isSelected());
        }
        else if(evt.getSource().equals(nouveau)) {
            Login.setSelected(false);
            login.setEnabled(Login.isSelected());
            login.setText("");
            Password.setSelected(false);
            password.setText("");
            password.setEnabled(Password.isSelected());
        }
        else if (evt.getSource().equals(valider)) {
            if (Login.isSelected() || Password.isSelected()) {
                JFileChooser ch = new JFileChooser();
                ch.setAcceptAllFileFilterUsed(true);
                ch.setFileSelectionMode(JFileChooser.FILES_ONLY);
                int result = ch.showSaveDialog(this);
                if (result == JFileChooser.APPROVE_OPTION) {
                    File destFile = ch.getSelectedFile();

                    if (destFile == null) {
                        JOptionPane.showMessageDialog(this, "Null file",
                                "Error", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    boolean append = false;

                    try {
                        PrintWriter pw = new PrintWriter(new FileOutputStream(
                                destFile, append));
                        if (Login.isSelected()) {
                            pw.println(login.getText() + "\r");
                        }
                        if (Password.isSelected()) {
                            pw.println(password.getText() + "\r");
                        }

                        pw.close();
                    } catch (Exception ex) {
                        JOptionPane.showMessageDialog(this, "Exception : "
                                + ex.getMessage(), "Error",
                                JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        JFrame fenetre = new JFrame("Paramètres");
        Container panneau = fenetre.getContentPane();
        panneau.setLayout(new FlowLayout(FlowLayout.LEFT, 50, 50));
        Programme nouvoPanneau = new Programme();
        panneau.add(nouvoPanneau);
        fenetre.pack();
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenetre.setVisible(true);

    }

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

OoWORAoO
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
6 juil. 2007 à 15:09
Salut ,à mon avis
La methode ActionPerformed permet de faire activer tous types de boutons
C'est du moins ce que je crois avoir compris donc dans ce programme j'essaie avec cette méthode de dire à la machine de faire tel ou tel instruction si j'appuie sur tel bouton.
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juil. 2007 à 15:37
Salut
Je suis désolé de te re-re-re déranger mais ce que j'aimerai pour les boutons c'est :

Quand j'appui sur Login ou Password le champ se desactive donc cela correspond à

if(Login.isSelected()) login.setEnabled(false);
if(Password.isSelected()) password.setEnabled(false);

Mais si je me trompe c'est-à-dire si je décoche Login et Password j'aimerai pouvoir réavoir les champs visibles:

et c'est là un de mes problèmes.


Voila je te remercie infiniment d'abord d'arriver d'avoir repondu maintes fois et aussi de supporter quelqu'un aussi boulet que moi en prog.

Désolé.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
6 juil. 2007 à 15:49
Je pense aussi que tu ne fais pas correctement ;o) tes test ... ;o) ... y a surement quelques "else" à retirrer ;o) ...

GodConan ;o)
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juil. 2007 à 17:12
Re-Salut.J'ai tout revérifié.Mais je n'arrive pas à resoudre ce probleme de cases à décocher.

Si vous pouviez m'aider ce serait grave sympa de votre part.

Un grand Merci d'avance.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
6 juil. 2007 à 18:37
Le vrai problem ;o) c est pas de reverifier ;o) mais de repartir de 0 ... tout refaire ...
fais deja cette effort  ;o) avec un brin de logique .... verifie bien la sequence de tes tests ... ;o) voir reflechi y avec un tableau avt de les ecrire ... ;o)

GodConan ;o)
0
Rejoignez-nous