Bonjour, je sais la question a été posée plusieurs fois déjà, mais je n'arrive pas à mettre le focus dans mon JFormattedTextField. J'ai bien utilisé la méthode requestFocus(), mais ca ne marche pas...

Voici mon code:

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
126
127
128
129
130
131
132
133
134
import java.awt.*;
import java.text.NumberFormat;
import javax.swing.*;
import javax.swing.text.DefaultFormatter;
public class MenuChoixUnique extends JPanel {
 
 private JLabel question;
 private JRadioButton[] reponse;
 private JFormattedTextField donneesUtilisateur;
 private JButton boutonSuivant = new JButton("Suivant");
 private JButton boutonPrecedent = new JButton("Précédent");
 private JButton boutonFin = new JButton("Fin");
 int typeQuestion;
 
 public int getTypeQuestion() {
  return typeQuestion;
 }
 
 public void setTypeQuestion(int typeQuestion) {
  this.typeQuestion = typeQuestion;
 }
 
 
 public JFormattedTextField getDonneesUtilisateur() {
  return donneesUtilisateur;
 }
 
 public void setDonneesUtilisateur(JFormattedTextField donneesUtilisateur) {
  this.donneesUtilisateur = donneesUtilisateur;
 }
 
 public JButton getBoutonFin() {
  return boutonFin;
 }
 
 public void setBoutonFin(JButton boutonFin) {
  this.boutonFin = boutonFin;
 }
 
 public JButton getBoutonPrecedent() {
  return boutonPrecedent;
 }
 
 public void setBoutonPrecedent(JButton boutonPrecedent) {
  this.boutonPrecedent = boutonPrecedent;
 }
 
 public JButton getBoutonSuivant() {
  return boutonSuivant;
 }
 
 public void setBoutonSuivant(JButton boutonSuivant) {
  this.boutonSuivant = boutonSuivant;
 }
 
 public JLabel getQuestion() {
  return question;
 }
 
 public void setQuestion(JLabel question) {
  this.question = question;
 }
 
 public JRadioButton[] getReponse() {
  return reponse;
 }
 
 public void setReponse(JRadioButton[] reponse) {
  this.reponse = reponse;
 }
 
 public MenuChoixUnique(String question, String[]reponse, int typeQuestion, String first, String last) {
  super();
  setSize(300,200);
  this.question = new JLabel(question);
  this.reponse = new JRadioButton[reponse.length];
  
  JPanel sousPanneau1 = new JPanel();
  ButtonGroup choixRestreint= new ButtonGroup();
  JLabel etiquetteQuestion = new JLabel(question);
  sousPanneau1.add(etiquetteQuestion);
  JPanel sousPanneau2 = new JPanel();
  this.typeQuestion = typeQuestion;
  
  if (typeQuestion==1){
   for (int i=0; i < reponse.length; i++){
    this.reponse[i]=new JRadioButton(reponse[i], false);//}
    
    choixRestreint.add(this.reponse[i]);
    sousPanneau2.add(this.reponse[i]);
   }}
  else{
   
   NumberFormat nf = NumberFormat.getNumberInstance ();
   nf.setParseIntegerOnly (true);
   
   donneesUtilisateur = new JFormattedTextField(nf);
   ((DefaultFormatter) donneesUtilisateur.getFormatter ()).setAllowsInvalid (false);
   donneesUtilisateur.setPreferredSize(new Dimension (80, 20));
   
   sousPanneau2.add(donneesUtilisateur);
   donneesUtilisateur.requestFocus();
  }
  
  JPanel sousPanneau3 = new JPanel();
  
  if (first == "first"){
   boutonPrecedent.setEnabled(false);
  }
  else{
   boutonPrecedent.setEnabled(true);
  }
  
  sousPanneau3.add(boutonPrecedent);
  if (last == "last"){
   boutonFin.setEnabled(true); 
   sousPanneau3.add(boutonFin);
  }
  else{
   boutonSuivant.setEnabled(true);
   sousPanneau3.add(boutonSuivant);
  }
  
  
  GridLayout grid = new GridLayout(3,1);
  setLayout(grid);
  add(sousPanneau1);
  add(sousPanneau2);
  add(sousPanneau3);
 }
 
 
}
Le tout s'exécute dans une JFrame. Si quelqu'un voit d'où vient l'erreur, ce serait sympa!!

D'avance merci
Bon aprem