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 : 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);
Code de mon bouton annuler :

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();
			}
		});
keyPressed sur le contentPane :

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);
			}
		});
Methode que je souhaite faire fonctionner :

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