Bloquer une Jframe

aurel_kb Messages postés 33 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
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