Objectifs
» Présenter des interactions d’un composant de texte avec son environnement
# Ouverture et sauvegarde des fichiers
# Couper-coller
# Undo-Redo
» L’important est la cohérence de l’environnement
# Entrées des menus activables seulement si cela a un sens
# “Aide implicite” que cela apporte
» En revanche, on ignore le style du texte lui-même
# Style des paragraphes
# Polices de caractères
Cahier de charges
» Editeur SDI (single document interface)
# un seul document présent
# une seule fenêtre de manipulation du texte
» Autres modèles
# une seule fenêtre, plusieurs documents
# plusieurs fenêtres, une par document
» Commandes de manipulation de documents
# nouveau, ouvrir, sauver, sauver sous
» Commandes de manipulation du texte
# copier – couper, coller, tout sélectionner
# annuler – rétablir
» Présentation de ces commandes sous forme
# menu – toolbar – raccourcis clavier
Textes et documents
» Classes de textes
+–javax.swing.JComponent
|
+–javax.swing.text.JTextComponent
|
+–javax.swing.JTextArea
|
+–javax.swing.JTextField
|
+–javax.swing.JEditorPane
|
+–javax.swing.JTextPane
…
|
» Classes de documents
java.lang.Object
|
+–javax.swing.text.AbstractDocument implements Document
| |
+–javax.swing.text.PlainDocument | extends
| |
+–javax.swing.text.DefaultStyledDocument implements StyledDocument
|
+–javax.swing.text.html.HTMLDocument
Document / vue
» Un composant de texte présente une vue d’un document.
# TextArea et TextField associés au PlainDocument
# TextPane associé à StyledDocument
» Correspondance
JTextArea editor;
Document document = editor.getDocument();
editor.setDocument(new PlainDocument());