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 :

Alignement du texte dans un JTextPane


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut Alignement du texte dans un JTextPane
    Salut
    j'utilise un JTextPane,
    Le probléme est que le texte que j'insére est toujours centré.
    je voudrais que le texte apparait à gauche(LEFT align)
    j'ai essayé cette methode mais sans resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    jTextPane = new JTextPane();
    SimpleAttributeSet attribs = new SimpleAttributeSet();
    StyleConstants.setAlignment(attribs, StyleConstants.ALIGN_LEFT);
    jTextPane.setParagraphAttributes(attribs, true);
    Comment modifier l'alignement de mon texte?

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Une réponse un peu détournée
    En fait, je penses qu'il y a moyen de dire qu JTextPane que l'on désire justifier à gauche son contenu. Mais je ne sais pas comment faire dans l'immédiat. Par contre, je vous propose de tenter cela en attendant de trouver la vrai réponse, il n'est pas impossible que ça fontionne.
    Ajoutez le texte suivant au tout début du texte que vous insérrez dans votre JTextPane :
    <HTML><DIV align=left>
    Puis à la fin du texte que vous insérrez dans le JTextPane, ajoutez cela :
    </DIV></HTML>
    Normalement, le code HTML ne sera pas affiché mais interprèté ce qui devrait agir au niveau du texte en lui même et donc donner le résultat recherché. De plus, avec le balisage HTML vous pouvez vous amuser en intégrant le dessin d'un bouton grâce au balisage input par exemple. On peut aussi présenter une URL sous forme d'anchor et je crois même qu'elle est fonctionnelle. Bref, ce peut être une alternative interressante si toutefois ça marche...
    Je vais maintenant regarder JTextPane de plus près...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Il y a un truc que je ne comprends pas.
    Me revoilà, j'ai lancé mon netBeans, créé rapidement un petit projet avec une fenêtre dans laquelle j'ai mis un JTextPane.
    Voilà comment Netbeans a instancié le JTextPane :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    jTextPane1 = new javax.swing.JTextPane();
    jTextPane1.setContentType("text/plain");
    Il place ce dernier dans un JScrollPane, mais je penses que cela n'a pas d'importance par rapport à votre problème.
    Ensuite, dans le code de ma fenêtre, juste après la méthode initcomponents() de netbeans placée dans le constructeur de cette dernière, j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jTextPane1.setText("Ceci est un test");
    Après lancement de l'application, le texte apparaît justifié à gauche ? Il n'est pas centré.
    J'ai alors apporté une petite modification au composant JTextPane en mettant text/html au lieu de text/plain pour son type de contenu. Mis à part que la police change, la justification ne change pas, ce n'est toujours pas centré.
    Je me demande donc pourquoi c'est centré chez vous ?
    Pourriez-vous montrer un peu plus de code ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par pursang Voir le message
    Me revoilà, j'ai lancé mon netBeans, créé rapidement un petit projet avec une fenêtre dans laquelle j'ai mis un JTextPane.
    Voilà comment Netbeans a instancié le JTextPane :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    jTextPane1 = new javax.swing.JTextPane();
    jTextPane1.setContentType("text/plain");
    Il place ce dernier dans un JScrollPane, mais je penses que cela n'a pas d'importance par rapport à votre problème.
    Ensuite, dans le code de ma fenêtre, juste après la méthode initcomponents() de netbeans placée dans le constructeur de cette dernière, j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jTextPane1.setText("Ceci est un test");
    Après lancement de l'application, le texte apparaît justifié à gauche ? Il n'est pas centré.
    J'ai alors apporté une petite modification au composant JTextPane en mettant text/html au lieu de text/plain pour son type de contenu. Mis à part que la police change, la justification ne change pas, ce n'est toujours pas centré.
    Je me demande donc pourquoi c'est centré chez vous ?
    Pourriez-vous montrer un peu plus de code ?
    Salut pursang,
    merci d'abord pour votre reponse et voixi comment j'ai utilisé mon JtextPane:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    jTextPane = new JTextPane();
    jTextPane.setAutoscrolls(true);
    // set align to left in the jTextpane
    SimpleAttributeSet attribs = new SimpleAttributeSet();
    StyleConstants.setAlignment(attribs, StyleConstants.ALIGN_LEFT);
    jTextPane.setParagraphAttributes(attribs, true);
    puis pour ajouter du text dans mon JtextPane, j'utilise la methode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void showThreadStatus(String event, Style style) {
     
    		try {
    				jTextPane.getDocument().insertString(jTextPane.getDocument().getLength(),event+"\n", style);
     
    	} catch (BadLocationException e) {
    			e.printStackTrace();
    		}
     
    	}
    J'espére que tu puisse m'aider.

  5. #5
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Ok, poursuivons
    Je ne comprends toujours pas. J'ai repris mon petit projet initial et j'ai modifié le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Style styleTest = jTextPane1.getStyle("default");
    try {
        jTextPane1.getDocument().insertString(0, "Ceci est un test", styleTest);
        }
    catch (BadLocationException ex) {
        ex.printStackTrace();
        }
    J'obtiens la même chose, le texte affiché dans le JTextPane n'est pas centré ?!
    En lisant votre code, j'ai cru comprendre que vous désirez pister l'activiter d'un Thread en traçant les messages qu'il envoie via le déclenchement de l'évennement showThreadStatus. C'est pourquoi vous ajoutez du contenu à la suite de l'existant. Du coup, je suppose qu'au lancement de votre code, le JTextPane est vide, à moins qu'il contienne déja quelque chose de 'formaté', je ne vois pas pourquoi la façon dont vous l'insérrez le ferait se centrer ?!
    Avez-vous essayé de faire un setContentType("text/plain") pour voir ce que ça donne. Sinon, faites alors un setContentType("text/html") et balisez ce que vous insérrez.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par pursang Voir le message
    Je ne comprends toujours pas. J'ai repris mon petit projet initial et j'ai modifié le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Style styleTest = jTextPane1.getStyle("default");
    try {
        jTextPane1.getDocument().insertString(0, "Ceci est un test", styleTest);
        }
    catch (BadLocationException ex) {
        ex.printStackTrace();
        }
    J'obtiens la même chose, le texte affiché dans le JTextPane n'est pas centré ?!
    En lisant votre code, j'ai cru comprendre que vous désirez pister l'activiter d'un Thread en traçant les messages qu'il envoie via le déclenchement de l'évennement showThreadStatus. C'est pourquoi vous ajoutez du contenu à la suite de l'existant. Du coup, je suppose qu'au lancement de votre code, le JTextPane est vide, à moins qu'il contienne déja quelque chose de 'formaté', je ne vois pas pourquoi la façon dont vous l'insérrez le ferait se centrer ?!
    Avez-vous essayé de faire un setContentType("text/plain") pour voir ce que ça donne. Sinon, faites alors un setContentType("text/html") et balisez ce que vous insérrez.
    J'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setContentType("text/plain")
    mais toujours le texte est centré.
    Une autre chose, lorsque mon jTextPane est rempli ,je m'attendais à avoir un scroll vertical mais ce que j'obtien est un texte tronqué: le JSCroll n'est pas affiché!

  7. #7
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Détail interessant
    Je m'en doutait un peu et dans mes premières propositions je précisais utiliser netbeans. Dans ce dernier , lorsque l'on place un JTextPane sur un container, il est automatiquement intégré à un JScrollPane.
    Hors, quand vous précisez que le remplissage de votre JTextPane ne conduit pas à un scroll, je ne peux que déduire la chose suivante :
    Soit vous avez mal intégré le JTextPane dans votre JScrollPane, soit vous ne l'avez tout simplement pas intégré dans un JScrollPane pensant qu'il gérait cela lui-même.
    Apparament, votre JTextPane ne se comporte pas normalement. Et ce graphiquement, pas mécaniquement. Donc, il est probablement mal intégré dans son container. Pourriez-vous me préciser si vous l'intégré ou pas à un JScrollPane. Si tel est le cas, serait-il possible de voir cette partie de code ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  2. Aligner le texte dans les formes
    Par funsunny dans le forum Visio
    Réponses: 1
    Dernier message: 30/10/2007, 13h25
  3. Alignement vertical texte dans un JTextComponent
    Par barbiche dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/09/2007, 12h03
  4. aligner du texte dans une zone de texte
    Par hammag dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/07/2006, 15h56
  5. [VBA] aligner le texte dans une cellule
    Par Rakham dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/01/2006, 17h07

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