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

Agents de placement/Fenêtres Java Discussion :

JOptionPane, JTable et focus


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut JOptionPane, JTable et focus
    Bonjour,

    J'ai intégré une JTable dans un JOptionPane, et souhaite que la table obtienne le focus dès l'affichage du dialogue. Cela est-il possible ?

    D'avance merci.

  2. #2
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    j'ai réglé ce problème de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	public JTableDb(){
     
    		// Bug du jtable ne récupere pas le focus
    		this.addAncestorListener( new AncestorListener(){
    			public void ancestorAdded(AncestorEvent e){
    				requestFocus();
    			}
    			public void ancestorMoved(AncestorEvent arg0) {}
    			public void ancestorRemoved(AncestorEvent arg0) {}
    		});
     
    	}

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Merci. Dans ce cas, this se rapporte à quel objet ?

  4. #4
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Pour le détail jtabldb est un extends de JTable this est un donc un jtable cette méthode inline est positionnée dans le constructeur.

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    et le rapport avec le JOptionPane ?

    par exemple, je l'affiche avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dialog.setVisible(true);
    Comment indiquer que la JTable contenue doit avoir le focus ?

  6. #6
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    pour le rapport avec le JOptionPane je ne sais pas.

    Par définition, sans autre précision, c'est le premier composant ajouté dans un panel qui détient le focus cela fonctionne pour la majorité des composants sauf le JTable qui semble rétif.

    De plus jtable.requestFocus()/jtable.RequestFocusInWindow() ne fonctionne pas toujours. cela doit peut-être dépendre du context. Dans le cadre de mon appli j'ai constaté qu'immédiatement aprés l'instanciation d'une fenetre le positionnement du focus sur le jtable ne marchait pas, puis suite à un click sur un composant de ma fenêtre cela fonctionne.

    J'ai pompé ce code sur un forum de sun. il m'a semblé pouvoir correspondre au bug que je rencontrais : le jtable s'ecoute lui même et demande le focus lorsqu'il est ajouté dans un panel. en l'occurence cela à réglé mon probléme.

    Le plus simple c'est de tester ce code, pour ma part je n'ai pas cherché plus loin !

    sinon http://bugs.sun.com/bugdatabase/view...bug_id=5018574 cela peut te donner une piste ?

  7. #7
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Nickel.

    Merci bien

  8. #8
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    heu c'est quoi qui marche le code ou le le lien qui référence à ton problème ?

  9. #9
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Le lien avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              dlgLOV = jop.createDialog(this, sTitle);
     
              dlgLOV.addComponentListener(new ComponentAdapter(){
                  public void componentShown(ComponentEvent e){
                    SwingUtilities.invokeLater(new Runnable(){
                      public void run(){
                        jp.requestFocusInWindow();
                        table.requestFocus();
                      }
                    });
                  }
              });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 18h15
  2. [JOptionPane] Bouton sans focus et pourtant
    Par Ynostel dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/08/2008, 00h20
  3. [JOptionPane] Perte de focus
    Par Paniez dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 28/11/2007, 13h32
  4. [JOptionPane] [JTable] la boite de Dialogue s'affiche 2 fois
    Par norkius dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 01/02/2005, 15h12
  5. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 15h51

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