Problem de focus [Résolu]

Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
20 février 2014
- - Dernière réponse : sadounno
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
20 février 2014
- 29 juil. 2013 à 00:34
bonjour a tous,
voila mon probleme: j'ai une jframe avec jmenu, et en cliquant sur un item sa me fait apparaitre une jdialog(2 boutons, 3 jtextfield) en modal, jusque là tout va bien
le soucis c'est que quand je veux faire le focus sur le bouton sa ne marche pas dés que le jdialog apparait sa focus sur le 1er jtextfield.
mes questions sont les suivantes:
- comment faire qpour que le focus se met directement sur le bouton.
- je veux acceder a un composand de la jdialg apartir de la jfram... comment faire (en langage c++ je rajoute l'entete de celle ci dans la 1ere )mais en java je ne sais pas
- es quil ya une methode pour creer des evenement a l'ouverture de ma jdialog

ce sont des questions basique mais qui me bloquent pour mon projet
merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
0
Merci
Bonjour,

Utilises la méthode requestFocus() de la classe JComponent pour mettre le focus sur un bouton donné.

public class App extends JFrame {

    private JButton submit = new JButton("OK");

    public App() {
        super("Application");

        setSize(400, 400);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel buttons = new JPanel();
        buttons.setLayout(new FlowLayout(FlowLayout.CENTER));
        buttons.add(submit);

        getContentPane().add(buttons, BorderLayout.SOUTH);

        getRootPane().setDefaultButton(submit);
        submit.requestFocus();
    }

    public static void main(String[] args) {
        App app = new App();
        app.setVisible(true);
    }
}
sadounno
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
20 février 2014
-
le requestFocus() marche bien avec le jframe mais c'est pas la meme chose avec jdialog.
je croix quil faut passer par windowActivate...
es que quelcun peut developper??
Commenter la réponse de Ombitious_Developper
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
20 février 2014
0
Merci
bonjour a tous, jeux poser une question pour completer celleci,

je veux Ecrire simultanément dans deux Jtextfield differents, mais da,s 2 jframe differentes
KX
Messages postés
15854
Date d'inscription
samedi 31 mai 2008
Statut
Contributeur
Dernière intervention
7 décembre 2018
-
"Ecrire simultanément" ça veut dire modifier un JTextField et le deuxième s'écrit en même temps ? Dans ce cas tu peux utiliser un KeyListener pour détecter la modification de l'un et la répercuter sur l'autre.

Exemple :

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JTextField;

public class JTextFieldClone
{
    public static JTextField[] create(final int nb)
    {
        final JTextField[] tab = new JTextField[nb];
        
        for (int i = 0; i < nb; i++ )
            tab[i] = new JTextField();
        
        for (int i = 0; i < nb; i++ )
        {
            tab[i].addKeyListener(new KeyListener()
            {
                @Override
                public void keyTyped(KeyEvent e)
                {
                }
                
                @Override
                public void keyPressed(KeyEvent e)
                {
                }
                
                @Override
                public void keyReleased(KeyEvent e)
                {
                    JTextField source = (JTextField) e.getSource();
                    String text = source.getText();
                    
                    for (int j = 0; j < nb; j++ )
                        if (tab[j] != source)
                            tab[j].setText(text);
                }
            });
        }
        
        return tab;
    }
}
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Test
{
    public static void main(String[] args)
    {
        for (JTextField txtField : JTextFieldClone.create(2))
        {
            JFrame frame = new JFrame();
            frame.add(txtField);
            frame.pack();
            frame.setLocationByPlatform(true);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
}
sadounno
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
20 février 2014
-
Merici c'est tres enrichissant
Commenter la réponse de sadounno

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.