précédent | suivant | table des matières
|
JScrollPane est un conteneur permettant de munir un composant de barres de défilement. Ceci permet de visualiser des composants plus grands que l'espace dans lequel ils sont visualisés. Le composant scrollé doit implémenter l'interface Scrollable. Les JScrollBars sont munies d'une stratégie d'affichage qui peut être :
JScrollPane() |
Crée un JScrollPane sans composant vue, avec des politique horizontale et verticale AS_NEEDED |
JScrollPane(Component vue ) |
Crée un JScrollPane avec composant vue, avec des politique horizontale et verticale AS_NEEDED |
JScrollPane(Component vue, int vPolitique, int hPolitique) |
Crée un JScrollPane avec composant vue, une politique horizontale et une politique verticale |
JScrollPane(int vPolitique, int hPolitique) |
Crée un JScrollPane sans composant vue, mais avec une politique horizontale et une politique verticale |
void setViewPortView( Component c) |
Affecte le composant Scrollable à visualiser. |
void setVerticalScrollBarPolicy(int p) |
Affecte la stratègie d'affichage de la ScrollBar verticale. |
int getVerticalScrollBarPolicy() |
|
void setHorizontalScrollBarPolicy( int p) |
Affecte la stratègie d'affichage de la ScrollBar verticale. |
int getHorizontalScrollBarPolicy() |
|
void setWheelScrollingEnabled(boolean b) |
Si b vaut true on peut scroller verticalement le composant avec la roulette de la souris. |
boolean isWheelScrollingEnabled() |
On peut ajouter un en-tête de colonnes ou un en-tête de lignes, ainsi que des coins :
void setColumnHeaderView (Component c) |
Affecte un composant comme en-tête de colonnes. |
void setRowHeaderView (Component c) |
Affecete un composant comme en-tête de lignes. |
void setCorner(String s, Component c) |
Affecte un composant comme coin, la chaîne de caractères vaut :
|
Component getCorner(String s) |
Retourne le composant affecté au coin en paramètre. |
Un composant qui implémente l'interface Scrollable doit définir les méthodes suivantes :
Dimension getPreferredScrollableViewportSize() |
|
int getScrollableUnitIncrement( Rectangle visibleRect, int orientation, int direction) |
Retourne la taille de l'incrément unitaire : clic sur la
flèche dans la barre de défilement.
|
int getScrollableBlockIncrement( Rectangle visibleRect, int orientation, int direction) |
Retourne la taille de l'incrément bloc : clic sur l'espace libre dans la barre de défilement. |
boolean getScrollableTracksViewportWidth() |
Force le composant a une taille horizontale adaptée au JScrollPane, si ça retourne true. |
boolean getScrollableTracksViewportHeight() |
Force le composant a une taille vertiacle adaptée au JScrollPane, si ça retourne true. |
Exemple :
public Dimension getPreferredScrollableViewportSize() { return getPreferredSize(); } public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { return 10; } public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { return (orientation == SwingConstants.VERTICAL) ? visibleRect.height : visibleRect.width; } public boolean getScrollableTracksViewportWidth() { if (getParent() instanceof JViewport) { return (((JViewport) getParent()).getWidth() > getPreferredSize().width); } return false; } public boolean getScrollableTracksViewportHeight() { if (getParent() instanceof JViewport) { return (((JViewport) getParent()).getHeight() > getPreferredSize().height); } return false; }