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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    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 Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    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 Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    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 éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    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 Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    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 éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    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é!

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 Invité 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