CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 janvier 2009
-
6 juil. 2007 à 10:29
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDerniè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 */
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);
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()==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;
}
}
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);
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."
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);
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
// 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;
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);
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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....
CicinhoRaul
Messages postés221Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention16 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.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201211 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)