Bloquer une Jframe

Fermé
aurel_kb Messages postés 28 Date d'inscription samedi 9 août 2008 Statut Membre Dernière intervention 9 juin 2014 - 5 déc. 2012 à 20:39
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 5 déc. 2012 à 21:05
Bonjour,
J'ai 2 fenêtres, une principale et l'autre secondaire.
lorsque je lance l'application la principale s'affiche.
quand je clique sur le bouton Ajouter, la seconde s'affiche.
Mon probleme est que la seconde fenêtre s'affiche mais j'ai toujours la possibilité de cliquer sur la fenêtre principale. Alors j'aimerai rendre la fenêtre inactif tant que je n'ai pas fermé la seconde fenêtre. j'utilise les Jframe pour les deux fenêtres.

Merci pourvos réponse.
Aurel

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
5 déc. 2012 à 21:05
Tu peux activer/désactiver n'importe quel composant avec la méthode setEnabled.

Exemple :

public static void main(String[] args)
{
    final JFrame frame1 = new JFrame();
    frame1.setSize(100,100);
    
    JButton button = new JButton("OK");
    button.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent arg0) 
        {
            frame1.setEnabled(false);
            
            JFrame frame2 = new JFrame();
            frame2.setSize(100,100);
            frame2.setVisible(true);
        }
    });
    
    frame1.add(button);
    frame1.setVisible(true);
}

Remarque : il y a certaines classes qui prennent automatiquement le blocage de la fenêtre, il s'agit alors de passer la fenêtre source en paramètre de la méthode :

Exemple :

public static void main(String[] args)
{
    final JFrame frame = new JFrame();
    frame.setSize(100,100);
    
    JButton button = new JButton("OK");
    button.addActionListener(new ActionListener()
    {
        @Override
        public void actionPerformed(ActionEvent arg0) 
        {
            JOptionPane.showMessageDialog(frame, "Hello");
        }
    });
    
    frame.add(button);
    frame.setVisible(true);
}
0