précédent | suivant | table des matières

JDesktopPane

Sommaire
  1. Constructeurs
  2. Méthodes
  3. DesktopManager
exem)le de JDesktopPane

(démonstration)

La classe JDesktopPane, associée à la classe JInternalFrame permet de réaliser des applications «multi-documents». Une application multi-documents est une application pouvant avoir plusieurs fenêtres incluses dans une fenêtre principale : 

Pour réaliser ceci, il faut : 

  1. Que le contentPane de la fenêtre principale soit une instance de la classe JDesktopPane, ou d’une sous-classe.

La partie 1 se réalise simplement : 

JDesktopPane dp = new JDesktopPane();
   …
setContentPane(dp);

La partie 2 se réalise de la façon suivante : 

JInternalFrame iFrame = new JInternalFrame( 
       titre, // le titre de la fenêtre
       rs,    // true si la fenêtre est retaillable
       c,     // true si la fenêtre est fermable
       m,     // true si la fenêtre est maximisable
       i);    // true si la fenêtre est iconifiable
iFrame.setVisible(true); // pour rendre la fenêtre visible
iFrame.setBounds(x, y, l, h); // pour configurer la taille
                              // et la position de la fenêtre
dp.add(iFrame); // ajout de la fenêtre au DesktopPane

1Constructeurs

JDesktopPane()
Crée un nouveau JDesktopPane.

2Méthodes

JInternalFrame [] getAllFrames()
Retourne un tableau contenant toutes les fenêtres internes.
JInternalFrame [] getAllFramesInLayer(int layer)
 
JInternalFrame getSelectedFrame()
Retourne la fenêtre interne sélectionnée.
void setSelectedFrame( JInternalFrame f)
La fenêtre f est la fenêtre sélectionnée (active).
DesktopManager getDesktopManager()
Retourne le DeskTopManager.
void setDesktopManager(DesktopManager dm)
Affecte le DeskTopManager.

3DesktopManager

Un DesktopManager est responsable de la gestion des fenêtres internes d'un JDesktopPane.

Swing fournit une implémentation de DesktopManager : DefaultDesktopManager.

void activateFrame(JInternalFrame f)
Rend la fenêtre f active :  elle a le focus.
void deactivateFrame(JInternalFrame f) 
f perd le focus
void beginDraggingFrame(JComponent f) 
La fenêtre f commence à être déplacée.
void dragFrame(JComponent f, int nX, int nY)
f est déplacée.
void endDraggingFrame(JComponent f) 
Fin du déplacement de f.
void beginResizingFrame(JComponent f, int direction) 
Méthode appelée quand la fenêtre f commence à se redimensionner.
void endResizingFrame(JComponent f) 
Fin du redimensionnement de f.
void openFrame(JInternalFrame f) 
Affiche la fenêtre si elle est visible.
void closeFrame(JInternalFrame f) 
Méthode qui retire f du JDesktopPane.
void iconifyFrame(JInternalFrame f) 
Iconifie la fenêtre f.
void deiconifyFrame(JInternalFrame f) 
f reprend la taille qu'elle avait avant iconification
void maximizeFrame(JInternalFrame f) 
La fenêtre f est maximisée : elle occupe tout l'espace du DesktopPane.
void minimizeFrame(JInternalFrame f) 
La fenêtre f est minimisée : elle a les dimensions qu'elle avait avant d'être maximisée.
void resizeFrame(JComponent f, 
        int nX, int nY, int nL, int nH) 
Redimensionne la fenêtre f.
void setBoundsForFrame(JComponent f, 
        int nX, int nY, int nL, int nH)
Redimensionne la fenêtre f.

Exemple : pour iconifier toutes les fenêtres d'un JDesktopPane :

DesktopManager dm = getJDesktopPane().getDesktopManager();
JInternalFrame[] t = getJDesktopPane().getAllFrames();
for( int i = 0; i<t.length; ++i)
   dm.iconifyFrame(t[i]);

haut de la page