Bonjour,
Je suis en train de réaliser un petit logiciel et je bloque sur deux-trois trucs.
J'ai une interface toute simple avec 3 JTextField et 2 JButton
Mon principal problème est que lorsque le focus est sur un JTextField, un keyPressed sur le contentPane ne fonctionne pas, y'a-t-il un moyen de régler ceci sans avoir à ajouter un keyPressed dans chaque JTextField ?
Mon second problème est que j'aimerais faire en sorte que lorsque la touche pressée est "entrée", cela simule un clique sur un button ou du moins le ramène à l'évènement que j'ai associé à celui-ci, j'ai testé btnValider.doClick(), je vois le clique se faire sur l'interface mais il ne se passe rien.
Merci par avance pour votre aide !
Code de mon bouton valider :
Code de mon bouton annuler :
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 btnValider = new JButton("Valider"); btnValider.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { if(txtNom.getText().replace(" ","").equals("")) { afficherMessage("La saisie est obligatoire"); txtNom.requestFocus(); return; } if(txtPrenom.getText().replace(" ","").equals("")) { afficherMessage("La saisie est obligatoire"); txtPrenom.requestFocus(); return; } if(txtTel.getText().replace(" ", "").length() != 4) { try { String numTel = txtTel.getText().replace(" ", "").replace("-", ""); Integer.parseInt(numTel); String nom = txtNom.getText(); String prenom = txtPrenom.getText(); c = new Client(nom,prenom,numTel); System.out.println(c.getNom() + c.getPrenom() + c.getTel()); cDAO.create(c); afficherMessage("Client ajouté avec succès"); dispose(); } catch(Exception e){e.printStackTrace();} } } }); getContentPane().add(btnValider); btnValider.setBounds(10,218,100,20);
keyPressed sur le contentPane :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 btnAnnuler = new JButton("Annuler"); getContentPane().add(btnAnnuler); btnAnnuler.setBounds(124,218,100,20); btnAnnuler.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { dispose(); } });
Methode que je souhaite faire fonctionner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 getContentPane().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { touchePressee(e); } });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void touchePressee(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_ENTER) { //Code du btnValider } if(e.getKeyCode() == KeyEvent.VK_ESCAPE) { dispose(); } }
Partager