précédent | suivant | table des matières
|
La classe JInternalFrame permet la création et la gestion de fenêtres internes à un JDesktopPane.
Constructeurs
JInternalFrame() |
Crée une JInternalFrame non redimensionnable, non fermable, non maximisable, non iconifiable et sans titre. |
JInternalFrame(String title) |
Crée une JInternalFrame non redimensionnable, non fermable, non maximisable et non iconifiable. |
JInternalFrame(String title, boolean resizable) |
|
JInternalFrame(String title, boolean resizable, boolean closable) |
|
JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable) |
|
JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) |
Méthodes
JDesktopPane getDesktopPane() |
Retourne le JDesktopPane qui contient cette frame. | |
Icon getFrameIcon() |
L’icone de la barre de cette frame. | |
void setFrameIcon(Icon i) |
Affecte l'icone de cette frame. | |
String getTitle() |
Retourne le titre de la frame. | |
void setTitle(String t) |
Affecte le titre de la frame. | |
Rectangle getNormalBounds() |
Retourne les limites de la fenêtre lorsqu'elle n'est pas maximisée | |
void setNormalBounds(Rectangle r) |
Affecte les limites "normales". | |
boolean isClosable() |
Retourne true si la fenêtre est fermable. | |
void setClosable(boolean b) |
||
boolean isClosed() |
Retourne true si la fenêtre est fermée. | |
void setClosed(boolean b) |
||
boolean isIconifiable() |
Retourne true si la fenêtre est iconifiable. | |
void setIconifiable(boolean b) |
||
boolean isIcon() |
Retourne true si la fenêtre est iconifiée. | |
void setIcon(boolean b) |
||
boolean isMaximizable() |
Retourne true si la fenêtre est maximisable. | |
void setMaximizable(boolean b) |
||
boolean isMaximum() |
Retourne true si la fenêtre est maximisée. | |
void setMaximum(boolean b) |
||
boolean isResizable() |
Retourne true si la fenêtre est redimensionnable. | |
void setResizable(boolean b) |
||
boolean isSelected() |
Retourne true si la fenêtre est active | |
void toBack() |
||
void toFront() |
Exemple
Un JDesktopPane avec les fonctionnalités :
public class MonDeskTopPane extends JDesktopPane { private final int depX = 20, depY = 20; private int nbInternalFrame; boolean cascade; public MonDeskTopPane() { super(); nbInternalFrame = 0; cascade = true; } public Component add(Component c){ super.add(c); c.setVisible(true); ++nbInternalFrame; arranger(); return c; } private void arranger(){ if( cascade) cascade(); else mosaique(); } public void cascade(){ cascade = true; // calcul du nombre de frame internes non icones nbInternalFrame = lesFrames.length; int n = nbInternalFrame; for( int i = 0 ; i < nbInternalFrame; ++i) if(lesFrames[i].isIcon() ) --n; for( int i = 0, j = n-1 ; i<nbInternalFrame; ++i, --j) if( !lesFrames[i].isIcon() ) lesFrames[i].setBounds(j*depX, j*depY, getWidth()/3, getHeight()/3); } public void mosaique(){ cascade = false; JInternalFrame [] lesFrames = getAllFrames(); // calcul du nombre de frame internes non icones nbInternalFrame = lesFrames.length; int n = nbInternalFrame; for( int i = 0 ; i < nbInternalFrame; ++i) if(lesFrames[i].isIcon()) --n; // bas permet de laisser de la place pour que les icones // soient visibles en bas de fenêtre int bas = 0; if(n != nbInternalFrame) bas = 30; // mise en mosaïque // calcul du nombre de colonnes if(n == 0) return; int nColonnes = (int)Math.sqrt(n), nLignes; if(n!=nColonnes*nColonnes)++nColonnes; // calcul du nombre de lignes if((n-1)/nColonnes+1<nColonnes) nLignes = nColonnes-1; else nLignes = nColonnes; int dx = getWidth()/nColonnes; int dy = getHeight()/nLignes - bas; int k = 0; for( int i = 0 ; i <nColonnes; ++i) for( int j = 0; j<nColonnes && k<n; ++j, ++k) lesFrames[i*nColonnes+j].setBounds(j*dx, i*dy, dx, dy); } void toutIconifier(){ JInternalFrame [] lesFrames = getAllFrames(); try{ for( int i = 0; i<lesFrames.length; ++i) lesFrames[i].setIcon(true); }catch(PropertyVetoException pve){} } void toutFermer(){ JInternalFrame [] lesFrames = getAllFrames(); try{ for( int i = 0; i<lesFrames.length; ++i) lesFrames[i].setClosed(true); }catch(PropertyVetoException pve){} } }