Bloquer une Jframe

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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);
    }