Utilisation d'une zone de texte pour y afficher le contenu d'un fichier écrit en html

     

alt : l'applet n'est pas visible par votre navigateur (dans le menu Outils, Modules complémentaires, activer le plugin Java(TM) Platform SE 6 U32 6.0.320.5 s'il est désactivé)

On voit ici s'afficher le contenu du petit fichier html notice.txt. L'objectif est ici de montrer comment on peut procéder pour atteindre ce objectif. On affiche ainsi du texte avec des formats variables au cours du texte.

On utilise la classe JEditoPane dont vous pouvez consulter en la documentation pour en savoir plus. On fait en sorte que la zone de texte ne soit pas éditable, ce qui signifie qu'on ne peut pas écrire à l'intérieur.

Le nom du fichier à afficher est ici indiquer en premier argument de la méthode main.  

import javax.swing.JFrame;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.File;
import java.util.Scanner;
import java.io.FileNotFoundException;

public class TexteHtml extends JFrame {
JEditorPane grandeZone;

public TexteHtml(String nomFichier) {
JScrollPane texteAsc;
StringBuffer texte;

texte = saisirTexte(nomFichier);

grandeZone = new JEditorPane("text/html", new String(texte));
grandeZone.setPreferredSize(new Dimension(300, 120));
grandeZone.setEditable(false);
texteAsc = new JScrollPane(grandeZone);
add(texteAsc, BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocation(300, 300);
setVisible(true);
}

public StringBuffer saisirTexte(String nomFichier) {
File fichier = new File(nomFichier);
StringBuffer texte = new StringBuffer();

try {
Scanner lecteur = new Scanner(fichier);

while (lecteur.hasNext()) texte.append(lecteur.nextLine());
}
catch (FileNotFoundException exc) {
System.out.println("Fichier inexistant");
}
return texte;
}
}


class EssaiTexteHtml {
public static void main(String[] arg) {
new TexteHtml(arg[0]);
}
}
Vous pouvez trouver ci-dessous :
  • le TexteHtml.java.
  • le le petit fichier lu.
  • le code de l'applet.
    grandeZone.setEditable(false); : on demande à ce que l'utilisateur ne puisse pas écrire dans la zone de texte.
    ©Irène Charon, Télécom - ParisTech 2010