keyPressed dans JTextField
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:
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); |
Code de mon bouton annuler :
Code:
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();
}
}); |
keyPressed sur le contentPane :
Code:
1 2 3 4 5 6
| getContentPane().addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
touchePressee(e);
}
}); |
Methode que je souhaite faire fonctionner :
Code:
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();
}
} |