Swing

Les interfaces graphiques en Java utilisent l'AWT : Abstract Window Toolkit. Depuis la version 2 du JDK, il existe une surcouche à l'AWT, appelée Swing. Cette surcouche a l'avantage d'être plus puissante que l'AWT. De plus, Swing est écrite uniquement en Java, son usage facilite donc la portabilité des logiciels.
Swing est décrite de façon très exhaustive (mais hélas peu concise) dans un tutoriel disponible en ligne : The JFC Swing Tutorial. Cette page reprend uniquement certains points important de ce tutoriel de façon à en faciliter l'accès.

Composants

Tous les composants Swing sont des instances de classes dont le nom commence par J, suivi du type du composant (par exemple JButton). Ces composants sont regroupés dans le paquetage javax.swing.

Il existe 3 types de composants "top-level"

Tous les composants qui ne sont pas "top-level" sont des JComponent.

Les composants intermédiaires sont dédiés à la géométrie. Ils sont destinés principalement à accueillir des composants de base.

Les composants de base seront les feuilles des arborescences de composants (certains composants très spécialisés ne sont pas présents dans cette liste)
  • JButton
  • JToggleButton
  • JRadioButton
  • JComboBox
  • JMenuBar
  • JMenuItem
  • JPopupMenu
  • Le programme suivant (voir exemple d'utilisation) illuste l'utilisation de quelques composants :
    ColorItem.java, JComponentsTable.java, Resources.java
     

    Géométrie

    Le choix de la taille de base d'un composant est souvent laissé à la boîte à outil. Ainsi, la taille d'un bouton par exemple dépendra initialement de la taille du texte qu'il contient. Il est toutefois possible de préciser dans le programme un ensemble de paramètres pour les tailles d'un composant aussi bien à son initialisation que lors de ses déformations. Cela se fait en utilisant les métodes de la classe JComponent : setMinimumSize(Dimension), setMaximumSize(Dimension) et setPreferredSize(Dimension).

    Le principal outil pour la géométrie des interfaces graphiques est l'utilisation de "positionnements" (layout). Dans Swing, les positionnements sont gérés par des objets instances de classes ayant pour terminaison Layout.
    Les classes de gestionnaires de positionnement sont au nombre de 6. Seule, BoxLayout est propre à Swing, les autres classes étant déja présentes dans l'AWT.

    A SUIVRE ...