Bonjour mes amis
je voudrais réaliser une petite application qui permet à un utilisateur de s'identifier avec son login et son mot de passe.
Je voulais savoir quelle méthode me conseillez vous ?
Merci
Bonjour mes amis
je voudrais réaliser une petite application qui permet à un utilisateur de s'identifier avec son login et son mot de passe.
Je voulais savoir quelle méthode me conseillez vous ?
Merci
Une JDialog avec un JTextField pour le login et un JPasswordField pour le mot de passe.
merci pour cette information mais jen'ai pas trouvé un exemple avec
Une JDialog avec un JTextField pour le login et un JPasswordField pour le mot de passe.
voila l'interface mais il me manque des procedure
mais si une personne tape son mot de passe et clic sur entrer il dois aller sur une fenetre une autre JFrame mais je n'ai aucune idée sur cette procedure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 package aa; import java.text.*; import java.util.Date; import java.text.DateFormat; import java.sql.*; import java.util.*; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.*; import java.awt.*; import java.io.*; import java.lang.*; public class SimpleFenetre extends JFrame implements ActionListener { private JPanel container = null; //Déclaration de lobjet JPanel private FlowLayout layout = null; //Déclaration de notre layout private JLabel labelResultat = null; //Déclaration de l'objet JLabel private JLabel labelResultat2 = null; private JButton bouton = null; public SimpleFenetre() { super(); build(); //On initialise notre fenêtre } private void build() { this.setContentPane(getContainer()); this.setTitle("Ma première application"); //On donne un titre à lapplication this.setSize(820, 440); //On donne une taille à notre fenêtre this.setLocationRelativeTo(null); //On centre la fenêtre sur lécran this.setResizable(false); //On interdit la redimensionnement de la fenêtre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à lapplication de se fermer lors du clic sur la croix } private JPanel getContainer() { layout = new FlowLayout(); //Instanciation du layout layout.setAlignment(FlowLayout.CENTER); //On centre les composants container = new JPanel(); //On crée notre objet container.setLayout(layout); //On applique le layout labelResultat2 = new JLabel("inserer votre mot de passe" ); labelResultat2.setPreferredSize(new Dimension(100, 25)); Color couleur = Color.red; labelResultat2.setForeground(couleur); container.add(labelResultat2); JPasswordField txt = new JPasswordField (); txt.setEchoChar ('*'); txt.setPreferredSize(new Dimension(100,25)); container.add(txt); bouton = new JButton("entrer "); bouton.setPreferredSize(new Dimension(125,25)); bouton.addActionListener(this) ; container.add(bouton); return container; } public static void main(String[] args) { SimpleFenetre gui = new SimpleFenetre(); //On crée une nouvelle instance de notre fenêtre gui.setVisible(true); } public void actionPerformed(ActionEvent e) { } }
Pour la touche entree, ta classe doit implémenter keyListener. Ajoute un keyListener au JPasswordField.
Cela t'obligera de déclarer 3 nouvelles méthodes, dont keyReleased(KeyEvent e), c'est celle la qui nous intéresse. La dedans, tu devras rajouter qqch du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if(e.getSource()==this.monPassordField){ if(e.getKeyCode()==KeyEvent.VK_ENTER){ // La tu rajoute le code qui doit être exécuté après l'appuis sur entrée } }
merci mais je coince encore est ce que il y a un simple exemple pour mieux comprendre comment je dois gerer les informations composant JPasswordField
En un seul mot: Javadoc
Vas falloir t'y faire, le moyen le plus rapide d'obtenir des réponses est de chercher dedans. Par exemple pour le JPasswordField tu as un lien vers le tuto how to use textfields qui explique comment se servir des champs texte, dont le JPasswordField
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
merci, mon problème je n'arrive pas a chercher et trouver des bonnes informations dans javadoc je ne comprends pas bien cette doc ,elle n'est pas claire trés compliqué
Je veux pas te démoraliser mais la javadoc est une (à mon gout) des docs les mieux faite de tous les langages informatique.
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
Un conseil, si tu ne comprends pas la javadoc, arrête temporairement l'apprentissage du langage au profit de la javadoc, car comme cité plus haut, tu ne pourras RIEN faire et comprendre sans elle.
Contrairement à ce que tu dis, elle n'est pas très compliquée à manipuler, qq heures voir moins à se familiariser avec, et ça roule. Par contre, je ne suis absolument pas daccord avec toi quant à sa clareté. Si les anciens langages ( ex C/C++ ) avaient eu ce genre de doc ( c'est pas trop faisable je l'avoue ), cela m'aurait bien simplifié la vie par le passé.
Pour t'aiguiller:
JPassWordField appartient au package swing, donc dans la frame en haut à gauche, descend et clicke sur le packages javax.swing.
Ta classe se nomme JPasswordFiled donc clicke dans la frame en bas à droite sur la classe de ce même nom, tu auras à droite la doc complète de cette classe.
EDIT Grilled
merci encore je m'avance j'ai utilisé getText() pour tester la valeur en entrée puisque la valeur est juste si je tape sur entré j'irais sur une autre fenetre (JFrame) ?
comment déplacer a nouvelle fenetre si je tape sur le bouton JButton entré ?
j'ai un message d'erreur j'ai essayé d'utiliser getText()
voila le code
le message d'erreur :"SimpleFenetre.java": cannot resolve symbol: variable txt in class aa.SimpleFenetre at line 79, column 11
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 package aa; import java.text.*; import java.util.Date; import java.text.DateFormat; import java.sql.*; import java.util.*; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.*; import java.awt.*; import java.io.*; import java.lang.*; public class SimpleFenetre extends JFrame implements ActionListener { private JPanel container = null; //Déclaration de lobjet JPanel private FlowLayout layout = null; //Déclaration de notre layout private JLabel labelResultat = null; //Déclaration de l'objet JLabel private JLabel labelResultat2 = null; private JButton bouton = null; public SimpleFenetre() { super(); build(); //On initialise notre fenêtre } private void build() { this.setContentPane(getContainer()); this.setTitle("Ma première application"); //On donne un titre à lapplication this.setSize(820, 440); //On donne une taille à notre fenêtre this.setLocationRelativeTo(null); //On centre la fenêtre sur lécran this.setResizable(false); //On interdit la redimensionnement de la fenêtre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à lapplication de se fermer lors du clic sur la croix } private JPanel getContainer() { layout = new FlowLayout(); //Instanciation du layout layout.setAlignment(FlowLayout.CENTER); //On centre les composants container = new JPanel(); //On crée notre objet container.setLayout(layout); //On applique le layout labelResultat2 = new JLabel("inserer votre mot de passe"); labelResultat2.setPreferredSize(new Dimension(100, 25)); Color couleur = Color.red; labelResultat2.setForeground(couleur); container.add(labelResultat2); JPasswordField txt = new JPasswordField(5); txt.setEchoChar('*'); txt.setPreferredSize(new Dimension(100, 25)); container.add(txt); bouton = new JButton("entrer "); bouton.setPreferredSize(new Dimension(125, 25)); bouton.addActionListener(this); container.add(bouton); return container; } public static void main(String[] args) { SimpleFenetre gui = new SimpleFenetre(); //On crée une nouvelle instance de notre fenêtre gui.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == bouton) { if (txt.getText().lenght()<1){ JOptionPane.showMessageDialog(this, "Nom est vides !", "Avertissement, ajout impossible", JOptionPane.WARNING_MESSAGE); } } } }
sur if (txt.getText().lenght()<1)
- POur les JPasswordField tu ne dois aps utiliser getText mais getPassword: http://java.sun.com/docs/books/tutor...wordfield.html
- ça t'as déja été dit, mais avant d'essayer de te compliquer la vie avec Swing, tu devrais commencer par apprendre à bien coder en java, ce qui est loin d'être le cas pour le moment, tu n'as pas les notions nécessaire en ce qui concerne le scope de tes variables: en l'occurence ton JPasswordField (txt) es une variable créé dans une méthode, donc ton field n'est accessible que dans le corps de la méthode où i la été créé.
Grosso merdo quand tu développes il ne faut pas vouloir tout et tout de suite. Il vaut mieux si l'on en a la possibilité, commencer par apprendre la base du langage et son fonctionnement AVANT de vouloir faire joujou avec des notions un tant soit peu plus complexes.
Cordialement.
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
Normal, ton JtextField est local a ta méthode getContainer()
Il faut que tu le mette avec tes attributs de la classe !!!
Ainsi l'actionListener peut le voir !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class SimpleFenetre extends JFrame implements ActionListener { private JPanel container = null; //Déclaration de lobjet JPanel private FlowLayout layout = null; //Déclaration de notre layout private JLabel labelResultat = null; //Déclaration de l'objet JLabel private JLabel labelResultat2 = null; private JButton bouton = null; JPasswordField txt ;
édit : Arr pas assez rapide !!!
edit : nettoye aussi ton bas de fichier !!!
Ta ligne 56 devient "txt = new JPasswordField(5);"
Ensuite la méthode getText() est déprécated (plus utilisé). Si tu utilise eclipse, il te le dis direct (il te barre les mots).
En fait il te faut utiliser getPassword. Cette méthode te retourne un tableau de caractère, donc tu transforme en string.
Et enfin la 75 devient txt.getPassword().toString()
voila
voici un code modifié !!!
Attention il utilise encore un getText a la place d'un getPassword car celle ci retourne un truc bizarre.
Déprécated veux dire déconseillé d'utilisé car une autre méthode la remplace. Mais pour des soucis de fonctionnement d'ancien code, les vieilles méthodes doivent quant même fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; public class SimpleFenetre extends JFrame implements ActionListener { private JPanel container = null; //Déclaration de lobjet JPanel private FlowLayout layout = null; //Déclaration de notre layout private JLabel labelResultat = null; //Déclaration de l'objet JLabel private JLabel labelResultat2 = null; private JButton bouton = null; JPasswordField txt ; public SimpleFenetre() { super(); build(); } private void build() { this.setContentPane(getContainer()); this.setTitle("Ma première application"); //On donne un titre à lapplication this.setSize(820, 440); //On donne une taille à notre fenêtre this.setLocationRelativeTo(null); //On centre la fenêtre sur lécran this.setResizable(false); //On interdit la redimensionnement de la fenêtre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à lapplication de se fermer lors du clic sur la croix } private JPanel getContainer() { layout = new FlowLayout(); //Instanciation du layout layout.setAlignment(FlowLayout.CENTER); //On centre les composants container = new JPanel(); //On crée notre objet container.setLayout(layout); //On applique le layout labelResultat2 = new JLabel("inserer votre mot de passe"); labelResultat2.setPreferredSize(new Dimension(200, 25)); Color couleur = Color.red; labelResultat2.setForeground(couleur); container.add(labelResultat2); txt = new JPasswordField(); txt.setEchoChar('*'); txt.setPreferredSize(new Dimension(200, 25)); container.add(txt); bouton = new JButton("entrer "); bouton.setPreferredSize(new Dimension(125, 25)); bouton.addActionListener(this); container.add(bouton); return container; } public void accesRefuse(){ // Traitement en cas d'acces refusé JOptionPane.showMessageDialog(this, "Nom est vides !", "Avertissement, ajout impossible", JOptionPane.WARNING_MESSAGE); } public void accesAutorise(){ // Traitement en cas d'acces autorisé JOptionPane.showMessageDialog(this, "Félicitation et bienvenue", "Acces autorisé", JOptionPane.PLAIN_MESSAGE); } public static void main(String[] args) { SimpleFenetre gui = new SimpleFenetre(); //On crée une nouvelle instance de notre fenêtre gui.setVisible(true); } public void actionPerformed(ActionEvent e) { System.out.println("action : " + txt.getText()); // if (e.getSource() == bouton) // Test ici inutile car tu n'as que 1 bouton { if (txt.getText().length()<1) accesRefuse(); if (txt.getText().compareTo("test")==0) accesAutorise(); } } }
Je t'encourage encore une fois a utiliser eclipse si ce n'est pas le cas (ou un autre IDE bien sur !!!). L'IDE t'aidera dans ta recherche de méthode. Lorsque tu fais "." il va toute te les proposer. Et si tu perd la fenetre, tu fais ctrl+espace et ca te montre les possibilité (normalement).
Ctrl+shift+o et il te ferra les import necessaire.
Il tereste normalement plus que les composant des base a connaitre et a t'amuser avec eux a faire des trucs !!!
Attention il est primordial d'avoir une base de java car si tu ne comprend pas les erreurs qu'il t'explique ... la entre autre il te disait que le composant n'était pas déclaré ... car pas accessible ... pourquoi ? -> car local. Donc necessité de le mettre en membre de la classe.
Une astuce si tu veux pas te trompé dans les accessibilité de tes variable (et si tu connait la différence bien sur) :
lorsqu'une variable est membre de ta classe tu met m_... (pour membre)
lorsqu'une variable est déclaré a l'intérieur d'une méthode tu met l_... (pour local)
lorsqu'une variable est issu d'un paramêtre tu met p_... (pour paramêtre)
lorsqu'une variable est statique tu met s_... (pour statique)
Ainsi dans ton cas, si tu vois qu'une variable l_txt a une erreur dans une méthode, et si elle n'est pas déclaré dans celle ci, ben c'est qu'il y a une erreur !!!
Euh j'aurais deux trois petits bémols à apporter
Un IDE c'est bien, mais faut il un tant soit peu maîtriser les fondamentaux du langage avant d'en utiliser (sinon tu passes au dessus de notions un tant soit peu fondamentales, le classpath en particulier)
En ce qui concerne les conventions de nommages, autant respecter celles de sun, c'est le plus simple et le plus facile à relire par la plupart des devs java. http://java.sun.com/docs/codeconv/ht...nvTOC.doc.html
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
merci encore ami pour cette information
j'ai bien suivi http://java.sun.com/docs/books/tutor...wordfield.html
mais si je tape sur entrer la boite de dialogue n'apparait pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 package aa; import java.text.*; import java.util.Date; import java.text.DateFormat; import java.sql.*; import java.util.*; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.*; import java.awt.*; import java.io.*; import java.lang.*; public class SimpleFenetre extends JFrame implements ActionListener { private JPanel container = null; //Déclaration de lobjet JPanel private FlowLayout layout = null; //Déclaration de notre layout private JLabel labelResultat = null; //Déclaration de l'objet JLabel private JLabel labelResultat2 = null; JPasswordField txt =null; private JButton bouton = null; public SimpleFenetre() { super(); build(); //On initialise notre fenêtre } private void build() { this.setContentPane(getContainer()); this.setTitle("Ma première application"); //On donne un titre à lapplication this.setSize(820, 640); //On donne une taille à notre fenêtre this.setLocationRelativeTo(null); //On centre la fenêtre sur lécran this.setResizable(false); //On interdit la redimensionnement de la fenêtre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à lapplication de se fermer lors du clic sur la croix } private JPanel getContainer() { layout = new FlowLayout(); //Instanciation du layout layout.setAlignment(FlowLayout.CENTER); //On centre les composants container = new JPanel(); //On crée notre objet container.setLayout(layout); //On applique le layout labelResultat2 = new JLabel("inserer votre mot de passe"); labelResultat2.setPreferredSize(new Dimension(100, 25)); Color couleur = Color.red; labelResultat2.setForeground(couleur); container.add(labelResultat2); JPasswordField txt = new JPasswordField(5); txt.setEchoChar('*'); txt.setPreferredSize(new Dimension(100, 25)); container.add(txt); bouton = new JButton("entrer "); bouton.setPreferredSize(new Dimension(125, 25)); bouton.addActionListener(this); container.add(bouton); return container; } public static void main(String[] args) { SimpleFenetre gui = new SimpleFenetre(); //On crée une nouvelle instance de notre fenêtre gui.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals(bouton) ) { char[] input =txt.getPassword(); if (isPasswordCorrect(input)){ JOptionPane.showMessageDialog(this, "success"); }else{ JOptionPane.showMessageDialog(this, "Invalid password. Try again.", "Error Message", JOptionPane.ERROR_MESSAGE); } } } private static boolean isPasswordCorrect(char[] input) { boolean isCorrect = true; char[] correctPassword = { 'a', 'l', 'l', 'o'}; if (input.length != correctPassword.length) { isCorrect = false; } else { for (int i = 0; i < input.length; i++) { if (input[i] != correctPassword[i]) { isCorrect = false; } } } //Zero out the password. for (int i = 0; i < correctPassword.length; i++) { correctPassword[i] = 0; } return isCorrect; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (e.getActionCommand().equals(bouton) )http://java.sun.com/javase/6/docs/ap...ctionCommand()getActionCommand
public String getActionCommand()
Returns the command string associated with this action.
Autrement dit, getActionCommand renvoie le texte de ton JButton, pas le JButton... Donc le equals renvoie tout le temps faux...
Remplace par :
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (e.getActionCommand().equals("entrer ") )
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (e.getSource().equals(bouton))
désolé j'ai déja essayé if (e.getActionCommand().equals("entrer ") ) mais ça n'a pas marché
et le deuxième bout de code tu n'as pas envie de l'essayer ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager