Des composants tout-en-un

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *