OVH Cloud OVH Cloud

HTML avec JTextpane

5 réponses
Avatar
Joly Makunga
bonjour, je suis stagiaire. mon projet est de créer un programme
permettant de visualiser un fichier html est de permettre d'effectuer
un apperçu du document, un peu comme dans word: apperçu avant
impression. j'ai décidé de simuler l'apperçu du document par
l'agrandissement et la réduction de sa police.

j'ai donc écrit un code permettant de charger une page html dans un
JTextpane. Le problème est que je n'arrive pas à avoir accès on fonction
permettant de toucher au formatage du texte. En bref je n'arrive pas à
changer la police du document.

je charge la page html grâce à ces lignes de codes:

....
tp.setPage(url)
....

tp : il s'agit de mon JTextpane
url : il s'agit du chemin complet de mon fichier html

5 réponses

Avatar
Hervé AGNOUX
Joly Makunga wrote:

bonjour, je suis stagiaire. mon projet est de créer un programme
permettant de visualiser un fichier html est de permettre d'effectuer
un apperçu du document, un peu comme dans word: apperçu avant
impression. j'ai décidé de simuler l'apperçu du document par
l'agrandissement et la réduction de sa police.



J'avoue ne pas très bien comprendre le rapport avec le schmilblick, mais si
cela te permet de réussir ton stage...

Non-testé-non-validé-de-mémoire-à-vérifier :

SimpleAttributeSet attributs;

attributs = new SimpleAttributeSet();
StyleConstant.setFontSize(attributs, 8); // par exemple
StyleConstant.setFontFamily(attributs, "courrier"); // aussi

tp.getDocument().setCharacterAttributes(0, tp.getDocument().getSize(),
attributs, false);



--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
Yann Sidney
Hervé AGNOUX wrote:
Joly Makunga wrote:


bonjour, je suis stagiaire. mon projet est de créer un programme
permettant de visualiser un fichier html est de permettre d'effectuer
un apperçu du document, un peu comme dans word: apperçu avant
impression. j'ai décidé de simuler l'apperçu du document par
l'agrandissement et la réduction de sa police.




J'avoue ne pas très bien comprendre le rapport avec le schmilblick, mais si
cela te permet de réussir ton stage...

Non-testé-non-validé-de-mémoire-à-vérifier :

SimpleAttributeSet attributs;

attributs = new SimpleAttributeSet();
StyleConstant.setFontSize(attributs, 8); // par exemple
StyleConstant.setFontFamily(attributs, "courrier"); // aussi

tp.getDocument().setCharacterAttributes(0, tp.getDocument().getSize(),
attributs, false);



Salut et merci de ta reponse


Excuse moi je suis le partenaire joly pour ce projet et à vrai dire on a
pas trop compris d'ou vient le StyleConstant.
Et apparement il y a une erreure au nivo du getSize() il ne semble pas
aimer.
merci de repondre
@ bientot


Avatar
Sidney Yann
Rectifictaif
Lerreur se situe o nivo du setCharacterAttributes(....)
je crois ke la methode nexiste pas.
Sinon g remplacer getSize() par getLength();

Voila un bout de notre source :
void TestShowPageLocale(String f)
{
try
{
File fichier = new File ("C:Documents and
SettingsAdministrateurMes
documentsProjetTestShowPageevent.html");

url = fichier.toURL();
tp.setEditable(true);
tp.setFont(new Font("TimesRoman",Font.BOLD+Font.ITALIC,30));

js.getViewport().add(tp);

// Make the scrollbars always appear

js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

jf.setLayout(null);

js.setLocation(10,10);
js.setSize(400,400);

jf.add(js);
jf.pack();
jf.setSize(900,500);
jf.setVisible(true);

tp.addKeyListener(this);
tp.addMouseListener(this);
jf.addKeyListener(this);
jf.addMouseListener(this);
js.addKeyListener(this);
js.addMouseListener(this);
tp.setPage(url);
}
catch (Exception e)
{
e.printStackTrace();
}
}
Avatar
Hervé AGNOUX
Yann Sidney wrote:


Excuse moi je suis le partenaire joly pour ce projet et à vrai dire on a
pas trop compris d'ou vient le StyleConstant.
Et apparement il y a une erreure au nivo du getSize() il ne semble pas
aimer.
merci de repondre


Voici un exemple complet et vérifié et compilé. Vous le mettez dans un
répertoire nommé "goodies", vous le compilez et le lancez en faisant par
exemple "java goodies.DemoTextPane http://www.google.fr". Merci de bien
vouloir faire CTRL-C pour l'arrêter. Vous verrez google avec de gros
caractères rouges (même pas peur).

package goodies;

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class DemoTextPane
{
// args[0] : le fichier html
public static void main(String[] args) throws Exception
{
JFrame frame;
JTextPane textpane;
JPanel cadre;
DefaultStyledDocument document;
SimpleAttributeSet attributs;

frame = new JFrame();
cadre = new JPanel();
cadre.setLayout(new BorderLayout());
cadre.setPreferredSize(new Dimension(500, 400));
frame.setContentPane(cadre);
textpane = new JTextPane();
cadre.add(new JScrollPane(textpane), BorderLayout.CENTER);
textpane.setPage(args[0]);
frame.pack();
frame.show();
document = (DefaultStyledDocument)textpane.getDocument();
attributs = new SimpleAttributeSet();
StyleConstants.setFontSize(attributs, 40);
StyleConstants.setForeground(attributs, Color.red);
document.setCharacterAttributes(0, document.getLength(), attributs,
true);
}
}

--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
Joly Makunga
Hervé AGNOUX wrote:
Yann Sidney wrote:


Excuse moi je suis le partenaire joly pour ce projet et à vrai dire on a
pas trop compris d'ou vient le StyleConstant.
Et apparement il y a une erreure au nivo du getSize() il ne semble pas
aimer.
merci de repondre



Voici un exemple complet et vérifié et compilé. Vous le mettez dans un
répertoire nommé "goodies", vous le compilez et le lancez en faisant par
exemple "java goodies.DemoTextPane http://www.google.fr". Merci de bien
vouloir faire CTRL-C pour l'arrêter. Vous verrez google avec de gros
caractères rouges (même pas peur).

package goodies;

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class DemoTextPane
{
// args[0] : le fichier html
public static void main(String[] args) throws Exception
{
JFrame frame;
JTextPane textpane;
JPanel cadre;
DefaultStyledDocument document;
SimpleAttributeSet attributs;

frame = new JFrame();
cadre = new JPanel();
cadre.setLayout(new BorderLayout());
cadre.setPreferredSize(new Dimension(500, 400));
frame.setContentPane(cadre);
textpane = new JTextPane();
cadre.add(new JScrollPane(textpane), BorderLayout.CENTER);
textpane.setPage(args[0]);
frame.pack();
frame.show();
document = (DefaultStyledDocument)textpane.getDocument();
attributs = new SimpleAttributeSet();
StyleConstants.setFontSize(attributs, 40);
StyleConstants.setForeground(attributs, Color.red);
document.setCharacterAttributes(0, document.getLength(), attributs,
true);
}
}



merci de votre réponse. Là nous avons un autre problème. En fait nous
sommes des débutants en java, et nous avons du mal à suivre votre
démarche de compilation. Nous utilisons actuellement Eclipse. Nous avons
donc créé un nouveau projet, dans un dossier nommé "goodies" et créé une
classe contennant le code que vous nous avez envoyé. La première ligne
de code "package goodies;" nous apparaît en rouge, comme un code érroné.
En mettant cette ligne en commentaire, le source s'exécute, mais les
caractères de google n'ont subi aucune modification.


jolyqr