Note: Il existe quelques composants n'étant pas des conteneurs racines, mais n'héritant pas de la class JComponent. Un exemple est la classe Box.Filler, qui est un composant non visible conçut pour etre utilisé avec les BoxLayout. Cette classe n'a pas besoin d'hériter de JComponent car elle n'utilise aucune de ses possibilités, et d'autre part, elle doit etre instanciée tellement souvent qu'elle doit etre aussi compacte et efficace que possible.
La classe JComponent fournit les fonctionnalités suivantes à ses descendants :2. Les caractéristiques de la classe JComponent.
En fixant un texte avec la méthode setToolTipText, vous pouvez fournir une aide aux utilisateurs d'un composant. Quand le curseur effectuera une pause sur le composant, le texte spécifié sera affiché dans une petite fenetre qui apparaitra près du composant. Pour plus de détail sur cette fonctionnalités, consultez : Comment utiliser les bulles d'aides.
- Les bulles d'aide
- Les bordures
- Les raccourcis clavier
- La gestion dynamique du Look & Feel
- Les propriétés
- Support de l'agencement
- Support des technologies d'accessibilité
- Le double buffering
- Quelques méthodes permettant d'améliorer l'efficacité de Swing
- Les bulles d'aide
La méthode setBorder nous permet de spécifier la bordure qu'affichera un composant le long de ses contours. Pour plus de détails la dessus, consultez : Comment utiliser les bordures.
- Les bordures
L'utilisation de la méthode registerKeyboardAction, nous permet de fournir à l'utilisateur, la possibilité d'utiliser le clavier à la place de la souris pour manipuler l'interface graphique.
- Les raccourcis clavier
La combinaison d'un caractère et d'une touche modificatrice que l'utilisateur doit presser simultanément pour effectuer une action est représentée par un objet KeyStroke. L'événement résultant doit etre traité par un ActionListener. Chaque raccourci clavier fonctionne selon les trois conditions suivantes : seulement quand le composant courant détient le focus, seulement quand le composant ou l'un de ses conteneurs à le focus ou n'importe quand lorsqu'un des composants de la fenetre détient le focus.
Note: Quelques classes fournissent des méthodes facilitant la gestion des raccourcis claviers. Par exemple, la classe AbstractButton supporte la méthode setMnemonic, qui nous permet de spécifier la touche qui, en combinaison avec la touche modificatrice dépendante du Look & Feel, provoquera le déclenchement de l'action associée au boutton concerné. Pour voir quelques exemples d'utilisation de raccourcis claviers, consultez Comment utiliser les boutons, les boites de choix, et les boutons radios.
Chaque objet JComponent possède un objet ComponentUI associé qui effectue tous les affichages, la gestion des événements, le calcul des tailles, etc ... La détermination de l'objet ComponentUI est dépendante du Look & Feel courant, qui peut etre fixé en utilisant la méthode UIManager.setLookAndFeel. Consultez la rubrique comment régler le Look & Feel pour plus de détails.
- Gestion dynamique du Look & Feel
Il est possible d'associer une ou plusieurs propriétés (couple nom/objet) à n'importe quel JComponent. Par exemple un gestionnaire d'agencement pourrait utiliser les propriétés pour associer des contraintes aux objets qu'il doit agencer. On régle et récupère les propriétés en invoquant les méthodes putClientProperty et getClientProperty. Pour plus de détails sur les propriétés, reportez vous à Comment utiliser les propriétés.
- Les propriétés
Bien que la classe Component fournisse des méthodes facilitant l'agencement, telles que getPreferredSize et getAlignmentX, elle ne fournit d'autre moyens de régler ces propriétés que dhériter et surcharger ces méthodes. Pour avoir un moyen plus simple de régler ses propriétés, la classe JComponent rajoute les méthodes setPreferredSize, setMinimumSize, setMaximumSize, setAlignmentX, et setAlignmentY. Consultez La gestion de l'agencement pour plus d'information.
- Support de l'agencement
La classe JComponent fournit une API et les fonctionnalités de base pour aider les technologies d'accessibilité telles que les lecteurs d'écrans, jetez un oeil à Comment gérer le support des technologies d'accessibilité.
- Support des technologies d'accessibilité
Le double buffering est une technique permettant d'améliorer la qualité des affichages et de leur mise-à-jour, reportez-vous à Affichage pour plus de détails.
- Le double buffering
La classe JComponent possède aussi quelques méthodes plus efficaces que en 1.1. Ces méthodes
- Quelques méthodes permettant d'améliorer l'efficacité de Swing
La classe JComponent fournit pleins de nouvelles méthodes et en hérite aussi beaucoup des classes Component et Container. Les tables suivantes résument les méthodes les plus utilisées. Ces tables sont juste une référence, il est préférable de consulter l'API pour obtenir plus de détails.3. L'API JComponent.
- Adapter l'apparence d'un composant
- Régler l'état d'un composant
- La gestion d'événements
- L'affichage des composants
- Gestion de la hiérarchies de conteneurs
- Agencer les composants
- Obtenir les informations de positionnement et de taille
- Utiliser les positions et les tailles absolus
Adapter l'apparance d'un composant Méthode But void setBorder(Border)
Border getBorder()
(in JComponent)Set or get the border of the component. See How to Use Borders for details. void setForeground(Color)
Color getForeground()
void setBackground(Color)
Color getBackground()
(in java.awt.Component)Set or get the foreground or background color for the component. The foreground is generally the color used to draw the text in a component. The background is (not surprisingly) the color of the background areas of the component, assuming that the component is opaque. void setOpaque(boolean)
(in JComponent)Set whether the component is opaque. An opaque component fills its background with its background color. boolean isOpaque
(in JComponent)Get whether the component is opaque. This method (but not setOpaque) was added to Component in 1.2. void setFont(Font)
Font getFont()
(in java.awt.Component)Set or get the component's font. If a font has not been set for the component, the font of its parent is returned. FontMetrics getFontMetrics(Font)
(in java.awt.Component)Get the font metrics for the specified font.
Régler l'état d'un composant Méthode But void setToolTipText(String)
(in JComponent)Set the text to display in a tool tip. See How to Use Tool Tips for more information. void setEnabled(boolean b)
boolean isEnabled()
(in java.awt.Component)Set or get whether the component is enabled. An enabled component can respond to user input and generate events. void setLocale(Locale l)
Locale getLocale()
(in java.awt.Component)Set or get the component's locale. If the component does not have a locale, the locale of its parent is returned. See Internationalization for information about locales. void setCursor(Cursor)
Cursor getCursor()
(in java.awt.Component)Set or get the cursor image to display when the mouse is over the component. void setVisible(boolean)
boolean isVisible()
(in java.awt.Component)Set or get whether the component is visible. Components are initially visible, with the exception of top-level components.
La gestion des événements Méthode But void addComponentListener(ComponentListener)
void removeComponentListener(ComponentListener)
(in java.awt.Component)Add or remove a component listener to or from the component. Component listeners are notified when the listened-to component is hidden, shown, moved, or resized. void addKeyListener(KeyListener)
void removeKeyListener(KeyListener l)
(in java.awt.Component)Add or remove a key listener to or from the component. Key listeners are notified when the user types at the keyboard and the listened-to component has the keyboard focus. addMouseListener(MouseListener l)
void removeMouseListener(MouseListener)
(in java.awt.Component)Add or remove a mouse listener to or from the component. Mouse listeners are notified when the user uses the mouse to interact with the listened-to component. void addMouseMotionListener(MouseMotionListener)
void removeMouseMotionListener(MouseMotionListener)
(in java.awt.Component)Add or remove a mouse motion listener to or from the component. Mouse motion listeners are notified when the user moves the mouse within the listened-to component's bounds. void addContainerListener(ContainerListener)
void removeContainerListener(ContainerListener)
(in java.awt.Container)Add or remove a container listener to or from the container. Container listeners are notified when a component is added to or removed from the listened-to container. void addFocusListener(FocusListener)
void removeFocusListener(FocusListener)
(in java.awt.Component)Add or remove a focus listener to or from the component. Focus listeners are notified when the listened-to component gains or loses keyboard focus. Component getNextFocusableComponent()
void setNextFocusableComponent(Component)
(in JComponent)Set or get the next focusable component. null indicates that the focus manager should choose the next focusable component automatically. void requestFocus()
boolean hasFocus()
(in java.awt.Component)Request that the component get the keyboard focus, or detect whether it has the focus. boolean contains(int, int)
boolean contains(Point p)
(in java.awt.Component)Determine whether the specified point is within the component. The argument should be specified in terms of the component's coordinate system. The two int arguments specify x and y coordinates, respectively. Component getComponentAt(int, int)
(in java.awt.Container)Return the component that contains the specified x, y position. The top-most child component is returned in the case where components overlap. This is determined by finding the component closest to the index 0 that claims to contain the given point via Component.contains().