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/ Les containers Sni* to View rappel: tous les com 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ême composant 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… nes séparées par une barre de redimensionnement ne peut pas réduire un composant ? moins de sa taille minlmum ne peut recevoir que 2 composants qui sont passés au constructeur: publicJSplitPane(int newOrientation, boolean newContinuousLayout, Component newLeftComponent, Component newRightComponent) 6 Le Jsplitpane les composants sont maximisés a la taille disponible dans leur zone 7 Le JTabbedPane container à onglets ajout des composants avec: composants textes, listes, tables, arbres pour un composant texte qui gère le ultiligne, il faut ruser: soit le mettre au centre d’un panel avec un Borderl_ayout soit redéfinir getScrollableTracksViewportWidth() pour toujours retourner false 13 Le JScroIlPane passage à la ligne géré par e JTextPane pas de passage à la ligne, c’est le JScrolIPane qui travaille 14 Le JScrollPane possibilité d’abuter des he 18 La méthode contains contains est utilisée par Swing pour savoir (entre autres choses) qui est concerné par un clic donc, facile de faire mentir le JSplitpane: JSplitPane split=new label, b) { * These overridings are used to allow clicks on the background * through the Jl_abel @Override public boolean contains(int x, int y) { if (label. contains(x,y)) {return false;} return super. contains(x. y); @Override public boolean contains(Point p) { if (label. cantains(p)) {return false;} return super. ontains(p); 19 Le J DesktopPane PAGF 23 Les menus 3 modes de sélection: clic de souris valldation clavier avec Entrée mnémonique (caractère souligné) item sélectionnable en pressant ‘M’ 24 exemple de sous-menu: on utilise un ButtonGroup comme d’habitude ‘action est passée au constructeur du bouton 28 Les actions l’accélérateur le nom avec le mnémonique l’icône la bulle d’aide 29 on peut désactiver le texte de l’action: JButton b=new J Button(buttonAction); b. setHideActionText(true); /k NOTE: setText must occur AFTER setHideActionText k/ b. setText( » he same With my own text »); on peut aussi gérer la sélection pour les boutons qui le supportent’. final Action enableAction—new RIJN ») { @Override public Void actionPerformed(ActionEvent e) { /k The method isSelected does not exist in Action KEY)