IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Pas de focus dans un JFormattedTextField


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut Pas de focus dans un JFormattedTextField
    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

  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    À vue de nez, c'est parce que tu n'attends pas que le composant soit affiché avant de faire ton requestFocus.

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    On peut voir ton main quand tu déclare ta JFrame?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut
    voici donc mon main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public static void main(String[] args) {
     
      MenuJFrame menu = new MenuJFrame();
     }
    et son constructeur:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public MenuJFrame(ApercuGraphique apercu){ 
      super("Menu");
      setSize(600,488);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      menu= new MenuQuestions(this, apercu);
      getContentPane().add(menu);
      setVisible(true);

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Rajoute ça dans ton constructeur de JFrame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu.setFocusable(true);
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut
    ben c'est fait, et ca marcha toujours pas

Discussions similaires

  1. [XL-2003] Focus dans un TextBox ne fonctionne pas
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/02/2013, 16h42
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 17h15
  3. Prog java ecoute même quand pas focus dans Windows
    Par JannyBoop dans le forum Débuter
    Réponses: 2
    Dernier message: 04/10/2009, 11h43
  4. Je ne retrouve pas ma SP dans Query analyser
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/07/2003, 12h43
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo