Bonjour,
Je bosse en ce moment sur un File Printer en java : j'ai des parties fixes et donc j'utilise du code HTML pour la mise en forme => donc oui JTextPane est mon ami !
Je sais qu'il y a déjà plusieurs discussions sur le forum à ce propos et je les ai parcouru.
Cependant, j'ai cherché dans la doc (et vos messages) comment ouvrir et interpréter du code html dans mon petit programme java : mais là je suis perdue !

A quoi sert les lignes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
HTMLEditorKit k = new HTMLEditorKit();    	
HTMLDocument doc = (HTMLDocument)k.createDefaultDocument();
pourquoi et quand dois-je utiliser ce bout de code concernant le style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Style defaut = texte.getStyle("default");
		Style as = texte.addStyle("stylePerso",defaut);
 
		//SimpleAttributeSet as = new SimpleAttributeSet();
		StyleConstants.setFontFamily(as, "Monospaced");
		StyleConstants.setFontSize(as, 20);
		StyleConstants.setAlignment(as, 1);
 
		StyledDocument doc = texte.getStyledDocument();
De plus, comme je l'ai lu dans vos messages : le style est spécifié dans les balise html alors pourquoi utiliser ces methodes dans le JTExtPane ?

Enfin : comment ajouter la page que j'ai génére dans le JTextPane : parce que partout ce que je lis (peut etre que je lis mal voir sans aucun doute):
ils ajoutent le HTML dans le StyledDocument doc grâce à la méthode insertString.

Je vous envois les parties cruciales de mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 
public class FileAfficher extends JFrame {
	private JTextPane texte;
	private boolean texteModifie = false;
	private String reponse;
 
	public static void main(String[] args) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		JDialog.setDefaultLookAndFeelDecorated(true);
		new FileAfficher();
	}  
 
	FileAfficher() {
		super("File Printer");
		setSize(new Dimension(800, 800));
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				quitter();
			}
		});
 
		texte = new JTextPane();
 
		texte.setContentType("text/html" );
		HTMLEditorKit k = new HTMLEditorKit();    	
		HTMLDocument doc = (HTMLDocument)k.createDefaultDocument();
		texte.setEditorKit(k);
		texte.setDocument(doc);
 
		//texte.setFont(new Font("Monospaced", Font.PLAIN, 12));	
		texte.setBackground(Color.WHITE);
		texte.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent evt) {
				texteModifie = true;
			}
		});
 
		getContentPane().add(new JScrollPane(texte));
		setJMenuBar(barreMenus());
		setVisible(true);
	}
 
	private JMenuBar barreMenus() {
[...]
                menu.addSeparator();
		JMenuItem information = new JMenuItem("Information");
		menu.add(information);
		information.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				reponse = JOptionPane.showInputDialog("Nom du centre hospitalier?");
				try {
					FicheRecapi(reponse);
					texteModifie =true;
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
 
			}
		});
 
		return barre;
}
private void FicheRecapi(String reponse) throws IOException{
 
		String[] initString =
		{ /* ...  fill array with initial text  ...*/ };
 
		Style defaut = texte.getStyle("default");
		Style as = texte.addStyle("stylePerso",defaut);
 
		//SimpleAttributeSet as = new SimpleAttributeSet();
		StyleConstants.setFontFamily(as, "Monospaced");
		StyleConstants.setFontSize(as, 20);
		StyleConstants.setAlignment(as, 1);
 
		StyledDocument doc = texte.getStyledDocument();
 
		//Load the text pane with styled text.
		try {
 
			//insertion de l'entête de la Fiche Récapitulative qui reste inchangée
			//texte.insertIcon(new ImageIcon("logo_biotech.jpg"));
 
			String file ="/home/fripette/Desktop/FilePrinter/enteteFicheRecap.html";
			FileReader enteteFicheRecap= new FileReader(file);
 
			doc.insertString(doc.getLength(),String.valueOf(enteteFicheRecap),as);
 
 
			/**concernant la partie variable de cette Fiche
                        for (int i=0; i < initString.length; i++) {
                                doc.insertString(doc.getLength(), initString[i],as);    
                        }**/
 
 
			//insertion de la fin de la Fiche Récapitulative qui reste inchangée
			String filename ="/home/fripette/Desktop/FilePrinter/finFicheRecap.html";
			FileReader finFichRecap= new FileReader(filename);
			doc.insertString(doc.getLength(),String.valueOf(finFichRecap),as);
					//doc.getStyle(as));
 
		}
		catch (BadLocationException ble) {
			System.err.println("Couldn't insert initial text into text pane.");
		}
	} 
 
}
S'il vous plait, comme vous pouvez le voir je suis perdue !
Pouvez vous me donner un site bien sur le JTextPane ou m'expliquer concrétement quand utilisez quoi !
MERCI