Problem de focus

Résolu
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014 - 25 juil. 2013 à 12:57
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre 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

2 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
26 juil. 2013 à 13:50
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);
    }
}
0
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014
28 juil. 2013 à 09:13
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??
0
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014
26 juil. 2013 à 16:12
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
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
Modifié par KX le 28/07/2013 à 12:19
"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);
        }
    }
}
0
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014
29 juil. 2013 à 00:34
Merici c'est tres enrichissant
0
Rejoignez-nous