Fenetre fille

ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016 - 11 sept. 2008 à 09:00
ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016 - 15 sept. 2008 à 11:27
bonjour tout le mande .je veut savoir comment chargé et déchargé les fenetre fille automatiquement parceque maintenant je doit les fermés manuellement.merci bien pour tous

8 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
11 sept. 2008 à 10:58
Salut:

Généralement, une application Swing est constituée d'une fenêtre principale (JFrame), les fenêtres filles sont des boîtes de dialogues (JDialog) ou des JInternalFrame.

La classe JDialog offre plusieurs constructeurs qui acceptent comme argument une référence sur la fenêtre (Window, Dialog, Frame) qui sera considérée comme étant leur parent, une fois cette fenêtre est fermée toutes les fenêtres filles seront aussi fermées.

public class ChildDialog extends JDialog {
   
    public ChildDialog(JFrame owner) {
       super(owner);
       // ...
    }

    // ...
}

public class MainFrame extends JFrame {
    // ...
   
    // Quelque part dans le code
    ChildDialog dialog = new ChildDialog(this);
    // ...
}
0
ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016
11 sept. 2008 à 11:38
salut
mois j'utilise j'internalframe  et mon probléme que je ne veut pas fermé la fenetre en appuiyant sur fermer mais je veut que l'orsque je charge une nouvelle jInternaFrame elle sera affiché et l'autre sera automatiquement fermé.j'espere que tu as compris mon probléme et merci bien pour la réponse.salut
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
11 sept. 2008 à 13:20
Salut:

Penses à fermer les JInternalFrame qui sont ouverts, chaque fois que tu ouvres une nouvelle fenêtre.

public void closeAllInternalFrames(JDesktopPane desktop) {
    JInternalFrame[] frames = desktop.getAllFrames();
    for (int index = 0; index < frames.length; ++index) {
       frames[index].setClosed(true);
    }
}
0
ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016
12 sept. 2008 à 08:46
bonjour
j'ai essayé cet methode mais ça na plus d'influence sur le programme


public void CloseAllFrame(JDesktopPane jdp)throws PropertyVetoException


{JInternalFrame[]frames=jdp.getAllFrames();


for (int index=0; index<frames.length; ++index)


{frames[index].setClosed(true);}}

merci et bon journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
12 sept. 2008 à 09:57
Salut:

Ok, je vais voir où réside le problème.
0
ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016
12 sept. 2008 à 13:26
salut et merci d'etre gentil .j'attend ta réponse.salut
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
14 sept. 2008 à 17:50
De retour.

Voici un exemple vit fait. ça marche sans aucun problème.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

/**
 * @author A.B.
 *
 */
public class App extends JFrame {

    private JDesktopPane desktop;
   
    public App() {
        super("Application");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(800, 600);
       
        buildMenu();
        buildContent();
    }
   
    private void buildMenu() {
        JMenuItem closeFramesItem = new JMenuItem("Close frames");
        closeFramesItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                for (JInternalFrame frame : desktop.getAllFrames()) {
                    try {
                        frame.setClosed(true);
                    } catch (PropertyVetoException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
       
        JMenuItem exitItem = new JMenuItem("Exit");
        exitItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
       
        JMenu fileMenu = new JMenu("File");
        fileMenu.add(closeFramesItem);
        fileMenu.addSeparator();
        fileMenu.add(exitItem);
       
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(fileMenu);
        setJMenuBar(menuBar);
    }
   
    private void buildContent() {
        desktop = new JDesktopPane();
        setContentPane(desktop);
       
        JInternalFrame frameOne = newInternalFrame("First");
        frameOne.setVisible(true);
        frameOne.setLocation(50, 50);
        desktop.add(frameOne);
       
        JInternalFrame frameTwo = newInternalFrame("Second");
        frameTwo.setVisible(true);
        frameTwo.setLocation(250, 100);
        desktop.add(frameTwo);
       
        JInternalFrame frameThree = newInternalFrame("Third");
        frameThree.setVisible(true);
        frameThree.setLocation(450, 150);
        desktop.add(frameThree);
    }
   
    public JInternalFrame newInternalFrame(String title) {
        JInternalFrame frame = new JInternalFrame(title, true, true, true,true);
        frame.setSize(300, 300);
       
        return frame;
    }
   
    public static void main(String[] args) {
        App app = new App();
        app.setVisible(true);
    }
}
0
ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016
15 sept. 2008 à 11:27
bonjour ambitious_developper et merci bien pour le code .c'est gentil de ta part .salut
0
Rejoignez-nous