IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

MessageFormat avec retour à la ligne ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Par défaut MessageFormat avec retour à la ligne ?
    Bonjour,

    J'imprime une JTable grâce à cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    MessageFormat header = new MessageFormat("Intitulé de ma table");
    MessageFormat footer = new MessageFormat("");
     
    try
    {
         maTable.print(JTable.PrintMode.FIT_WIDTH, header, footer);
    }
    catch (PrinterException e)
    {
        System.out.println("Erreur PrinterException : " + e.getMessage());
    }
    Le problème c'est que mon header contient trop de caractères et du coup, il se retrouve tronqué sur ma feuille.
    Y'aurait-il un moyen de créer un MessageFormat contenant un retour à la ligne ?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Par défaut
    J'ai essayé avec un JLabel contenant du code HTML :

    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
     
                                                    JLabel lblHeader = new JLabel("<html>ligne1<br> ligne2 </html>");
     
    						MessageFormat header = null;
    						MessageFormat footer = new MessageFormat("");
     
    						header = new MessageFormat(lblHeader.getText()); 
     
    						try
    						{
    							tableDateTotal.print(JTable.PrintMode.FIT_WIDTH, header, footer);
    						}
    						catch (PrinterException e)
    						{
    							System.out.println("Erreur PrinterException : " + e.getMessage());
    							JOptionPane.showMessageDialog(null, "Erreur : l'impression à échouée !",
    				        		    "Erreur", JOptionPane.ERROR_MESSAGE);
    							lblErreurDate.setText("Une erreur s'est produite pendant l'impression !");
    						}
    Seulement lors de l'impression, il affiche sur ma feuille les balises html. Et donc, toujours pas de retour à la ligne...
    Quelqu'un aurait une autre idée ?

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Normalement, il suffit que tu mettes des retours chariots dans ta chaîne, genre "première ligne\nseconde ligne". Ce que tu fais avec le JLabel ne sert à rien : avec getText(), tu récupères le texte que tu as passé en paramètre, autant utiliser directement la chaîne avec les balises html, le JLabel ne servant à rien. Mais l'impression utilisant des ordres de dessins de base directement sur le contexte graphique, les balises seront également affichées : passer par du html, donc, ne fonctionnera pas. Le seul traitement qui est fait sur la chaîne produite par le MessageFormat (en dehors du patching des paramètres), c'est que le texte peut être rendu par l'intérmédiaire d'un TextLayout, qui pourra traiter du wrapping, mais dont, malheureusement, on ne peut contrôler directement les styles, lors de l'impression de la JTable.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Par défaut
    Malheureusement, le retour chariot "\n" ne fonctionne pas.
    Il n'y a donc pas de solution à mon problème ?

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ah, oui, mince, j'avais mal vu : on utilise bien un TextLayout pour évaluer les dimensions du texte, mais pour l'imprimer on utilise un drawString : du coup, en regardant de plus près, je m'aperçois que le TextLayout de SWING de fait pas de wrapping (j'ai confondu avec SWT). Sans définir ton propre printable, visiblement, on ne peut pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Par défaut
    Du coup, afin d'avoir mon header en entier, je voudrais forcer l'impression en mode paysage.
    Comment faire ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/07/2007, 14h33
  2. [utilitaire bcp]problème avec retour à la ligne
    Par m-mas dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/05/2007, 15h10
  3. [CSS] espace dans les li avec retour à la ligne
    Par grinder59 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/07/2006, 11h00
  4. Bouton avec retour a ligne
    Par Dsphinx dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 29/05/2006, 21h30
  5. Concatérner chaine avec retour à la ligne
    Par nebule dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo