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 :

JTextPane et getInputAttributes()


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut JTextPane et getInputAttributes()
    Bonjour,

    Je travaille sur la gestion de style dans un JTextPane éditable.
    J'aurais aimé savoir à quoi servait exctement la méthode getInputAttributes() du JTextPane ? Que renvoie-t-elle comme Attributs ? Et comment peut-on l'utiliser ?
    Est-ce que quelqu'un saurait, ou connaitrait un tutorial qui en parlerait ?
    Je vous remercie par avance !

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    L'API Java te donne déjà de meilleure piste pour chercher:
    http://docs.oracle.com/javase/1.4.2/...JTextPane.html

    Tu peux y voir que cela te retourne un MutableAttributeSet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Ok je te remercie.
    Ce que je ne comprends pas, c'est quels sont les attributs qu'elle retourne éxactement ? A priori, lorsqu'on crée le JTextPane, il y a déjà des attributs par défauts renvoyés par getInputAttributes(). Par exemple, on peut récupérer une Font_Size par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.getFontSize(getInputAttributes());
    On peut également changer ces valeurs (encore que quand j'essaye de mettre StyleConstants.setFontSize(getInputAttributes(), 15), il me renverra 18 ensuite...)

    Donc je ne comprends pas bien comment m'en servir, et quel effet il a sur le texte du JTextPane.

    Quelqu'un peut-il me renseigner un peu ? Et/ou m'expliquer la cause possible de mon problème de taille ?

    Merci d'avance.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Est-ce que quelqu'un saurait au moins d'où pourrait provenir le fait que quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.setFontSize(jtextPane.getInputAttributes(), 15);
    Il me retourne 18 quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.getFontSize(jtextPane.getInputAttributes());
    Toutes pistes ou idées pourraient m'aider !

    Je vous remercie par avance.

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par bomehc Voir le message
    Est-ce que quelqu'un saurait au moins d'où pourrait provenir le fait que quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.setFontSize(jtextPane.getInputAttributes(), 15);
    Il me retourne 18 quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.getFontSize(jtextPane.getInputAttributes());
    Toutes pistes ou idées pourraient m'aider !

    Je vous remercie par avance.
    Tu peux déjà regarder via le debuger par exemple si tu peux regarder ce qu'il fait dans le StyleConstants.setFontSize.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Ok, je te remercie beaucoup !

    Grâce au débuggeur, j'ai trouvé que dans la classe StyleSheet, il y avait un attribut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     static final int sizeMapDefault[] = { 8, 10, 12, 14, 18, 24, 36 };
    qui définit une liste de taille.

    Puis, il y a la méthode fromStyleConstants(StyleConstants key, Object value) de la classe CSS qui semble convertir la valeur donnée en paramètre(value, qui vaut 15 chez moi) en la valeur supérieure de ce tableau (ici 18).
    Cette méthode est bien appelée par StyleConstants.setFontSize().

    Mais alors, pourquoi parfois me garde-t-il bien la valeur 15, et pourquoi parfois la change-t-il en 18 ? Il devrait me renvoyer tout le temps 18 du coup...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Je reviens poster sur cette page, car mon problème persiste bel et bien. Cela dit j'ai un peu avancé, et je crois comprendre qu'il y a un conflit entre le style HTML et le JTextPane.

    En effet, quand je regarde les attributs réellement ajoutés quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StyleConstants.setFontSize(jtextPane.getInputAttributes(), 15);
    il se trouve que la taille n'est pas toujours celle indiquée. Pourtant, l'attribut StyleConstants.fontSize est bien à 15, mais j'ai également un autre attribut CSS.Attribute.font-size qui entre peut-être en conflit avec le précédent.

    Du coup, quelqu'un sait-il comment régler la taille du texte d'un JTextPane associé à un HTMLDocument ? Faut-il utiliser autre chose que StyleConstants.setFontSize(...) ?

Discussions similaires

  1. [JTextPane] Extraire un mot
    Par doudine dans le forum Composants
    Réponses: 3
    Dernier message: 21/04/2012, 22h11
  2. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  3. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 19h20
  4. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 15h01
  5. Scroll automatique dans un JTextPane
    Par regbegpower dans le forum Composants
    Réponses: 9
    Dernier message: 11/11/2003, 09h24

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