précédent | suivant | table des matières
|
Un Document est un conteneur qui contient du texte, et sert de modèle aux composants swing permettant d'éditer du texte.
Texte plat : Le texte est une séquence de caractères unicode, dont le premier caractère est à l'indice 0. Les méthodes suivantes permettent d'obtenir tout ou partie du texte :
int getLenth() | Retourne la Longueur (nombre de caractères) du texte. |
String getText(int d, int l) | Retourne le texte entre à partir de d, et de longueur l. |
void getText(int d, int l, Segment s) | ... |
Texte structuré : Le texte a une structure, par exemple, un livre composé de chapîtres, eux même composés de paragraphes, etc... L'unité de base de la structure est un Element, qui a un ensemble d'attributs. Les éléments sont de natures différentes suivant qu'on a affaire un texte HTML : html, body, p, content, etc... ou à un texte RTF : section, paragraph, content, etc...
Les méthodes suivantes permettent d'accéder aux éléments d'un document :
Element getDefaulRootElement() |
Retourne l'élément racine. |
Element[] getRootElements() |
Retourne les éléments qui dépendent de la racine. |
Le parcours de la structure peut se faire de la façon suivante :
void parcours( Element e ) { for (int i = 0; i < e.getElementCount(); ++i) { parcours(e.getElement(i)); } }
Avec un appel initial :
for (int i = 0; i < es.length; ++i) afficheElement(res[i]);
ou :
afficheElement(monDocRTF.getDefaultRootElement() );
Mutations : Dans un Document, on peut modifier le texte et ses attributs : police, couleur, alignement, etc... Les méthodes suivantes permettent de réaliser celà :
void insertString(int p, String s, AttributeSet as) |
Insertion de la chaîne s, avec les attributs as à la position p dans le document. |
void remove(int d, int l) |
Suppression du texte à partir de l'indice d, sur une longueur l. |
Position createPosition(int p) |
Création d'une position |
On a accès aux attributs d'un élément de la façon suivante :
Element e = ...; AttributeSet as = e.getAttributes(); Enumeration enu = as.getAttributeNames(); while(enu.hasMoreElements()){ Object o = enu.nextElement(); System.out.println(" " + o + "=" + as.getAttribute(o)); }
On peut modifier les attributs d'un texte, ou d'un paragraphe de la façon suivante :
String t = ...; // le texte de remplacement int d = ...; // à partir de d int f = ...; // jusqu'à f SimpleAttributeSet as = new SimpleAttributeSet(); StyleConstants.setFontFamily(as, "Courier"); StyleConstants.setFontSize(as, 20); StyleConstants.setBackground(as, Color.YELLOW); StyleConstants.setForeground(as, Color.RED); StyleConstants.setAlignment(as, 1); try { // On remplace le texte, avec les nouveaux attributs monDocRTF.replace(d, f-d, t, as); // Les attributs du paragraphe englobant sont modifiés monDocRTF.setParagraphAttributes(d, f-d, as, true); } catch (BadLocationException e1) { ... }
PlainDocument
Un document qui représente du texte sans structure.
DefaultStyledDocument
Un document au format RTF.
HTMLDocument
Un document au format HTML.