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

AWT/Swing Java Discussion :

mise en forme de chaine String Dans un jTextArea


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Points : 20
    Points
    20
    Par défaut mise en forme de chaine String Dans un jTextArea
    Bonjour,
    Je me suis mis en tête de réaliser un chat avec deux exécutable distant et ce sans serveur (je sais c'est chercher les complications )

    J'ai un problème avec la forme (gras format text etc .....) d'une chaîne String

    La personne 1 (l'envoyeur ) tape du text dans jTextArea en gras via un event lié à un jToggleButton.
    Lorsqu'il envois l'information via la commande :
    textReception.setText(textEnvois.gettext());
    bien évidement , lorsqu'il y a réception du contenu la chaîne envoyé ne garde plus les paramètre de font du jTextArea.

    Attention je que je voudrai faire c'est :
    J'envois un contenu String via un event et ce String garde le font sélectionné par l'envoyeur.
    Lorsque l'envoyeur remet le font normalement , le String est renvoyé avec son choix sans avoir d'incidence sur les autres String envoyé précédement.

    Je vous remercie d'avance pour tout les événentuelles réponses

  2. #2
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    Le string ne contenant aucune informations de formattage (gras, italique, couleur, etc...), Il ne faut pas faire transiter une string entre tes 2 programmes, mais un objet qui contiendrait aussi bien le texte (ta string) que la mise en forme (la font par exemple).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    heu je ne voix pas vraiement comment faire là.....
    Ce serait pas possible sinon d'envoyer cela avec des balise html ?

    Sinon avec ta solution, je ne comprends pas vraiment comment afficher l'objet dans le jTextAreaReception avec le font choisi (pour l'objet envoyé )???

    Comment appliquer uniquement la classe font au contenu envoyé??

  4. #4
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    J'avoue ne pas avoir retouché à des JTextArea depuis longtemps. Mais si mes souvenirs sont bons, tout le texte à forcement le même style. Dans ton cas il faudrait mieux utiliser un JTextPane pour lequels tu peux définir plusieurs style.

    Il te faut déclarer dans un premier temps les styles que tu proposes comme dans l'exemple suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                 //Initialize some styles.
    	Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
     
    	Style regular = textPane.addStyle("regular", def);
    	StyleConstants.setFontFamily(def, "SansSerif");
     
    	Style s = myTextPane.addStyle("italic", regular);
    	StyleConstants.setItalic(s, true);
     
    	s = myTextPane.addStyle("bold", regular);
    	StyleConstants.setBold(s, true);
    puis afficher ton texte avec le style spécifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
             Document doc = myTextPane.getDocument();
             try
             {
    	   doc.insertString(doc.getLength(), line + "\n", myTextPane.getStyle(style));
             }
             catch (BadLocationException ble)
             {
    	...
             }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    merci pour ta réponse je vais essayer cela ce soir

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    donc j'ai essayé le morceau de code que tu m'as donné,
    J'ai un problème avec
    lors de l'affichage du document dans le jTextPane , ben les donnée avec style sont formaté

    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
     
    public void actionPerformed(java.awt.event.ActionEvent e) {
    					System.out.println("actionPerformed()"); 
    					StyledDocument doc=(StyledDocument)textEnvois.getDocument();
    					Style style=doc.addStyle("StyleName",null);
    					StyleConstants.setBold(style, true);
    					try{
     
    						doc.insertString(doc.getLength(),textEnvois.getText()+"\n",style);
     
    					}catch(BadLocationException  ece){}
    					try{
    						textReception.setText(doc.getText(0, doc.getLength()));
    						textEnvois.setText("");
    					}catch(BadLocationException exe){}
    				}
    pour mon JtextPane textReception,devrais-je employer autre chose??? comme module?


    EDIT: c'est bon je suis arrivé finalement en utilisant comme méthode textRecetpion.setStyledDocument(doc);

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Pourqoui ne pas utiliser un JEditorPane (cela te permet d'avoir du HTML avec les getText et setText, donc avec tout le formatage des chaîne...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    javax.swing.JEditorPane jep=new javax.swing.JEditorPane();
    jep.setEditorKit(new javax.swing.text.html.HTMLEditorKit());
    ensuite, getText et setText....

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jep.setText("<B>Coucou</B>");
    affiche Coucou en gras dans le JEditorPane.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    c sur que ç'est plus facile en html j'y avait déjà penser
    Mais bon j'apprend le java tout seul comme tout le monde je pense
    et je fais des application perso pour maîtriser certains concept
    Maintenant je jPane avec le StyleDocument est ok dans ma tête
    je passe au meme concept avec les balisess html

    Sinon une question

    les pgm comme msn ou icq (pour ceux qui connaissent encore) utilise les concept html ou le traitement du doc?

Discussions similaires

  1. Mise en forme de l'affichage dans une boucle
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2010, 17h50
  2. mise en forme d'un tableau dans un richtextbox
    Par sanach dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/04/2008, 10h34
  3. Mise en forme de l'affichage dans une liste
    Par nunurs83 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/05/2007, 21h47
  4. Mise en forme conditionnel d'options dans liste déroulante
    Par adr22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/03/2007, 13h53
  5. [MySQL] Mise en forme de la date dans une ligne
    Par Donald08 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/08/2006, 14h28

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