précédent |
suivant |
table des matières
JScrollPane
(Démonstration)
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 :
- VERTICAL_SCROLLBAR_AS_NEEDED la ScrollBar verticale n'est visible que si elle est nécessaire.
- VERTICAL_SCROLLBAR_NEVER la ScrollBar verticale n'est jamais visible
- VERTICAL_SCROLLBAR_ALWAYS la ScrollBar verticale est toujours visible
- HORIZONTAL_SCROLLBAR_AS_NEEDED la ScrollBar horizontale n'est visible que si elle est nécessaire.
- HORIZONTAL_SCROLLBAR_NEVER la ScrollBar horizontale n'est jamais visible
- HORIZONTAL_SCROLLBAR_ALWAYS la ScrollBar horizontale est toujours visible
Constructeurs
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 |
Méthodes
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 :
- JScrollPane.UPPER_LEFT_CORNER pour le coin haut gauche.
- JScrollPane.UPPER_RIGHT_CORNER pour le coin haut droit.
- JScrollPane.LOWER_LEFT_CORNER pour le coin bas gauche.
- JScrollPane.LOWER_RIGHT_CORNER pour le coin bas droit.
|
Component getCorner(String s) |
Retourne le composant affecté au coin en paramètre. |
Interface Scrollable
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.
- visibleRect est le rectangle actuellement visible.
- orientation vaut SwingConstants.HORIZONTAL si le clic se fait sur la ScrollBar horizontale, et SwingConstants.VERTICAL si le clic se fait sur la ScrollBar
verticale.
- direction
- <0 gauche ou haut
- >0 droit ou bas
|
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;
}
haut de la page