Graphics HTML [Résolu]

Signaler
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
-
didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
-
Bonjour à tous .. 

Est ce qu'il est possible d'écrir un code HTML avec un Graphics. Par exemple la chaine "mon texte" écrirait le texte "mon texte" souligné et non la chaine tel qu'elle figure dans la variable (à savoir "mon texte").

merci. 

12 réponses

Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Tu peus utiliser html dans un JLabel:
new JLabel("<html>mon texte")
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Scuse moi. Ca y est. c'est réglé .. (enfin .. j'penses xD)
Je vais créer un JLabel dans lequel je mettrais mon texte codé en HTML. Je récupèrerai ensuite le Graphics de ce JLabel et le désinerais sur la page (après l'avoir personnalisée).

merci .. :o)
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Voici encore un petit exemple, pour le cas ou tu aurais besoin:

public class LabelPrintDemo implements Printable {
    private JLabel label;
    LabelPrintDemo() {
        label = new JLabel("<html>Ceci est un JLabel avec texte html.");
        label.setSize(100, 60);
        print();
    }
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex > 0) {
            return (NO_SUCH_PAGE);
        } else {
            int x = (int) pageFormat.getImageableX();
            int y = (int) pageFormat.getImageableY();
            g.translate(x, y);
            g.setColor(Color.BLUE);
            g.drawOval(x, y+100, 300, 150);
            g.translate(x + 100, y + 150);//set the position of the JLabel
            label.print(g);//print the JLabel
            return (PAGE_EXISTS);
        }
    }
    private void print() {
        PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(this);
        try {
            printJob.print();
        } catch (PrinterException pe) {
            System.out.println("Error printing: " + pe);
        }
    }
    public static void main(String[] args) {
        new LabelPrintDemo();
    }
}
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Effectivement, on peut l'utliser dans des JLabel (je m'en suis servit pour tester mon code). Mais ma question porte sur est ce qu'on peut se servir de l'HTML avec un Graphics ? (de manière à écrire du texte mit en forme à partir de l' HTML).

merci
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
> est ce qu'on peut se
servir de l'HTML avec un Graphics ?

On a déjà un composant qui fait le nécessaire. Pas besoin de réinventer la roue!
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Slt.
(lool) C'est parce qu'en fait, j'aimerais imprimer un texte avec une certaine mise en forme (mise en forme faite par on porgramme au travers du code HTML généré). Je n'ai pas trouvé de méthode d'impression de ce type. C'est pourquoi je tente de créer la mienne en écrivant ce texte en html dans un Graphics pour ensuite l'imprimer (méthode print(..) de java.awt.print.PrinterJob).

merci
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Je voulais dire la méthode print( .. )  de Printable
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Les composants swing ont une méthode print(Graphics g). Il n'y a donc aucun problème pour imprimer du texte html en utilisant un JLabel.
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
^^
En fait c'est parce que j'ai créer ma propre méthode print (j'y ai ajouté un cadre en entête, ...; chose simpossibles si je me sers directement de la méthode print() du composants en question), j'ai également créer ma propre boîte de dialogue (pour la sélection des propriétées d'impression).
Pour en revenir à la méthode print, je ne peux pas l'utiliser dans le cas dans lequel je me trouve (puisque j'ai tout recréer à ma sauce :p ). Cest pourquoi il me faudrais savoir si on peut écrir en html avec un Graphics (ici, c'est le graphics qui est passé en paramètre dans la méthode print(..) et donc qui correspond à la page en cours). Et si oui, comment .. ? :o)

merci
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Tu peus utiliser la méthode JComponent#print(Graphics g). Ici, c'est le graphics qui est passé en paramètre dans la méthode print(..) du Printable.
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Slt.
Ta proposition m'as fais penser a ca : je créer un JLabel dans lequel je mets mon code HTML. Je récupère ensuite le Graphics du JLabel pour y ajouter mes entêtes, ...
Je suis en train de tester cette solution. Seulement, il se trouve que lorsque je modifis le Graphics, il est "null" ...

saurais-tu pourquoi .. ? (faut-il que je l'ajoutes(/affiches) sur une JFrame ou quelque chose commen ca .. ?).
merci.
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Merci pour cet exemple, je viens de comprendre (grace à ce dernier) le fonctionnement de la méthode print() dont tu me parlais.. :p