Swing

Pages: 6 (1390 mots) Publié le: 28 août 2014
Interface Graphique en Java 1.6
Containers, menus, barre d'outils
et actions
Sébastien Paumier

paumier@univ-mlv.fr

Illustrations provenant du site http://tux.crystalxp.net/

1

Les containers




rappel: tous les composants Swing sont
des containers potentiels, même s'il vaut
mieux ne pas essayer pour la plupart
d'entre eux
règle d'or: on ne peut pas ajouter un
mêmecomposant plusieurs fois:





ni dans le même container
ni dans des containers différents

JPanel est le container le plus simple,
mais il y en a d'autres...

paumier@univ-mlv.fr

2

Les containers spécialisés


containers qui imposent un layout
manager, et parfois des fils







exemple: JFrame impose un fils unique
JRootPane

faciles à utiliser
pas besoind'en définir de nouveaux, à
moins d'un besoin très particulier
attention: on n'ajoute pas forcément les
composants avec le add classique...

paumier@univ-mlv.fr

3

La Box


Box (pas de J) est presque équivalente à
un JPanel muni d'un BoxLayout
Box box=new Box(BoxLayout.Y_AXIS);





remarque: l'orientation passée au
constructeur est un champ de BoxLayout
et non de Boxattention: container transparent, ne pas
l'utiliser comme content pane

paumier@univ-mlv.fr

4

La Box

à n'utiliser que quand on
veut vraiment de la
transparence

Box b=new Box(BoxLayout.Y_AXIS);
b.add(new JRadioButton("Alpha"));
b.add(new JRadioButton("Beta"));
b.add(new JRadioButton("Gamma"));
b.add(Box.createVerticalGlue());
/* This has no effect on a Box! */b.setOpaque(true);
b.setBorder(BorderFactory.createTitledBorder("Box"));

paumier@univ-mlv.fr

5

Le JSplitPane






container à 2 zones séparées par une
barre de redimensionnement
ne peut pas réduire un composant à
moins de sa taille minimum
ne peut recevoir que 2 composants qui
sont passés au constructeur:

public JSplitPane(int newOrientation,
boolean newContinuousLayout,
ComponentnewLeftComponent,
Component newRightComponent)
paumier@univ-mlv.fr

6

Le JSplitPane

les composants
sont maximisés à
la taille disponible
dans leur zone

paumier@univ-mlv.fr

7

Le JTabbedPane


container à onglets



ajout des composants avec:




possible de définir le placement des
onglets avec:




addTab(String title,Component c)set/getTabPlacement

que faire quand ça déborde ?


set/getTabLayoutPolicy

paumier@univ-mlv.fr

8

Le JTabbedPane



chaque composant est maximisé



accès au composant sélectionné:


set/getSelectedComponent(Component c)



ou set/getSelectedIndex(int index)

paumier@univ-mlv.fr

9

Le JTabbedPane


si on veut gérer soi-même l'onglet, il faut
utiliser:


●setTabComponentAt(int index,Component c)

exemple: container avec label+2 boutons
personnalisés

paumier@univ-mlv.fr

10

Le JScrollPane




permet d'afficher un composant à sa
taille préférée, sans le réduire s'il n'y a
pas assez d'espace
le composant est passé au constructeur:


JScrollPane(Component view, int
vsbPolicy, int hsbPolicy)



les 2 autres paramètresrégissent la
présence des barres de défilement

paumier@univ-mlv.fr

11

Le JScrollPane


gestion des barres
de défilement:

paumier@univ-mlv.fr

12

Le JScrollPane


pour que ça fonctionne, le composant
inséré doit implémenter Scrollable:




composants textes, listes, tables, arbres

pour un composant texte qui gère le
multiligne, il faut ruser:


soit le mettre aucentre d'un panel avec un
BorderLayout



soit redéfinir
getScrollableTracksViewportWidth() pour
toujours retourner false

paumier@univ-mlv.fr

13

Le JScrollPane

passage à la ligne
géré par le JTextPane

pas de passage à la
ligne, c'est le
JScrollPane qui
travaille
paumier@univ-mlv.fr

14

Le JScrollPane


possibilité d'ajouter des headers et un
coin avec:...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • le swing
  • Le swing
  • Resumer de swing
  • Les Swing Kids
  • Les Swing Kids
  • Swing absolu
  • Swing kids
  • Cours java swing

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !