Présentation des composants un peu plus complexes que de simples JLabel, fournis par Awt ou Swing.
Le JEditorPane
- Gère les textes aux formats RTF et HTML
- JTextPane étend JEditorPane
- Modes de vues : rendu ou edition : setEditable(boolean)
- HyperLinkListener : écouteur sur les liens
Le JSlider
- ChangeListener
- Mode vertical ou horizontal (SwingConstants.HORIZONTAL, …)
- setMajorTickspacing, setMinorTickSpacing : espacement des graduations ; setPaintTicks
- Obliger la sélection sur de grandes graduations : setsnaptoTicks
- Etiquettes sur les grandes graduations : setPAintLabels. Pour définir ses propres labels :
Hashtable<Integer, Component> slider.setLabelTable(hashTable);
- putclientProperty(« JSlider.isFilled », Boolean.TRUE) : barre remplie
- inverser la direction : setInverted
Le JProgressBar
- Mode Vertical ou Horizontal
- setMinimum, setMAximum, setStringPainted (override permettant de personnaliser le texte)
- Ne pas modifier les valeurs à partir du même thread. La modification de l’affichage ne peut se faire correctement qu’à partir du thread Swing.
Execution du thread qui travaille (qui implique l'utilisaiton de la jprogress) Execution d'un Timer dont on redéfinira la méthode actionPerformed pour mettre à jour la progressBar et vérifier si l'action est terminée (appel de timer.stop();)
Le ProgressMonitor
- Correspond à un JProgress dans une boite de dialogue.
- Fournir un composant hôte, un objet à afficher, une note exceptionnelle, un min, un max.
- setProgress, vérifier qu’on n’a pas annulé avec isCanceled, actionTemrinée appelle close();
- start() lance la progressBar après un temps jugé nécessaire pour l’afficher vraiment (500 ms par défaut).
- Redéfinir ce temps d’affichage: setMillisToDecidePopup
Le ProgressMonitorInputStream
- ProgressMonitorInputStream pmis = new PMIS(parent, caption, new FileInputStream(file));
- InputStreamReader = new InputStreamReader(pmis);
- PMIS appelle isAvailable pour connaitre la taille du flot lu. Impossible à utiliser pour du streaming donc.
Le JToolBar
- Déplacement aux 4 coins de la fenêtre possible si le conteneur a un layout compatible avec les positions NORTH, WEST, SOUTH et EAST.
- add(component), addSeparator();
- Possibilité d’attacher directement des actions (génère des boutons par défaut) : menu.add(new AbstractButton(« nom »,image,actionPerformed));
Le JSplitPane
- icones permettant l’expansion du panel (flèches sur la bordure) : setOneTouchExpandable
- Mise à jour du contenu pendant le redimensionnement : setContinuousLayout
Le JTabbedPane
- addTab(nom, icone, composant), insetTab(nom, icone, composant, index), removeTabAt(index), setSelectedIndex(index)
- ChangeListener
Les Fenetres MDI
- Frame doit avoir un contentPane tel que JDesktopPane.
- Affichage du cadre pendant le déplacement : desktop.putclientProperty(« JDesktopPane.dragMode », « outline »);
- JInternalFrame(titre, tailleModifiable, fermable, maximisable, iconifiable);
- setFrameIcon
- reshape(x, y, width, height);
- setVisible, setSelected (throws Erreur si pb de relâchement de focus par une autre iframe)
- hauteur de la barre de titre : frame.getHeight – frame.getcontentPane().getHeight()
- getAllFrames, isIcon, setMAximum
- VetoableChangeListener : intercepte les changements de propriétés demandées sur l’iframe (event.getPropertyName = « closed », …)
Les Boites de Dialogue
- showInternalConfirmDialog : permet à la JDialog de se placer en fonction de la position de la JInternalFrame.