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 :

[TextArea] Gestion de la mise en forme


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut [TextArea] Gestion de la mise en forme
    bonjour,

    j'ai un textarea qui fais office d'editeur.
    j'ai des bouton pour ajouter des tag un peu comme le bb-code.

    je sais comment faire simplement pour ajouter le tag a la textArea mais j'aimerais ameliorer un peu.

    voici ce que je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String texte = monArea.getText()+"[i][/i]"
    monArea.setText(texte);
    vraiment simple, le code se met a la fin

    voici ce que j'aimerai faire :
    soit metre le tag non pas a la fin mais la ou se trouve le curseur.
    soit on selectionne le texte voulu et il est entoure par les tag.

    je ne sais pas du tout comment m'y prendre.
    peut etre un debut de solution pour la 1er possibilite :
    je recupere la position du curseur
    je coupe le texte en 2 (dans un tableau par exemple) a x caractere (la ou se trouvait le curseur)
    je construit mon texte tab[0]+"[\i] [/i]"+tab[1]
    mais je ne sais pas si il ya moyen de recuperer l'emplacement du curseur

    si quelqu'un peut m'aiguiller vers la soluce , je suis debutant en java

    merci

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Premièrement, je te conseille d'utiliser SWING plutot que AWT.

    Néanmoins, je pense que les methodes doivent êtres sensiblement les même :

    Pour mettre tes tags au début et fin d'un texte sélectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String texteBalise = "[i]";
    texteBalise+= monArea.getSelectedText();
    texteBalise+="[/i]";

  3. #3
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    oki c'est parfait pour creer le tag mais comment le placer au bon endroit ?

    je m'explique, si j'ai un TextArea qui contient ceci :
    ligne 1
    ligne 2
    si je selection 'ligne 1'
    et je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String texteBalise = "[i]";
    texteBalise+= monArea.getSelectedText();
    texteBalise+="[/i]";
    monArea.setText(monArea.getText()+textbalise);
    je vais obtenir ceci :
    ligne 1
    ligne 2
    ligne 1
    il faudrai remplacer le texte selectionner par texteBalise.

    merci

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    IL faut aussi réflechir un peu soi-même et essayer !

    je dirais un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String texteSelectionne = area.getSelectedText();
    String affichage = area.getText();
    affichage .replaceAll(texteSelectionne,texteBalise);
    area.setText(affichage);
    (non-testé)

  5. #5
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    je vais essayer merci.
    le probleme qui peut arriver : si le texte selectionner apparait 2 fois le tag y sera inserer 2 fois

    merci je tiens au courant

  6. #6
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    me revoila tout content
    sa fonctionne.

    merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // recupere le texte dans l'editeur
    String texteEditeur = this.panel_editeur.area_editeur.getText();
     
    // recupere le texte selectionne
    String texteSelec = this.panel_editeur.area_editeur.getSelectedText();
     
    // entoure de tag		
    String texteTag = "[i]"+texteSelec+"[/i]";
     
    // remplace le texte selectionne par le texte avec tag
    texteEditeur = texteEditeur.replaceAll(texteSelec,texteTag); 
    this.panel_editeur.area_editeur.setText(texteEditeur);
    il y a le probleme que je prevoyait mais c'est pas grave
    y devrait y avoir moyen via expression reguliere mais c'est pas pour moi, il ma fallu plus d'1 mois pour comprendre en php

  7. #7
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    je suis desole mais j'ai encore une petite question

    j'aimerai ne pas effectue l'action si rien n'est selectionne dans mon textArea.

    voici comment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (this.panel_editeur.area_editeur.getSelectedText() != null)
    {
    System.out.println(this.panel_editeur.area_editeur.getSelectedText()+"selec");
    }
    else System.out.println("rien selec");
    mais sa ne fonctionne pas, j'ai essayer aussi !="" mais pareil.

    selec
    est afficher donc aucun caractere devant ...

    merci

  8. #8
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    bonjour,

    peut-être de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!this.panel_editeur.area_editeur.getSelectedText().equals("")) 
    { 
    System.out.println(this.panel_editeur.area_editeur.getSelectedText()+"selec"); 
    } 
    else System.out.println("rien selec");
    bon courage

  9. #9
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Comme l'explique yann2, si tu ne sélectionne rien, ce n'est pas "null" qui est renvoyé mais la String vide "".

  10. #10
    Membre chevronné

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Par défaut
    En effet, avec le replaceAll, si tu as plusieurs occurences, tu risques de tout modifier ...

    Voici un exemple pour résoudre ton probléme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JTextArea jtext = new JTextArea();
     
     
    String selectedText = jtext.getSelectedText();
    if(selectedText==null) jtext.append("[I][/I]");
    else jtext.replaceSelection("[I]"+selectedText +"[/I]");

  11. #11
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    avec tout sa je devrai bien m'ensortir, je vai transformer ma textarea en Jtextearea car replaceselection existe pas avec awt

    j'avais essayer jtext.getSelectedText()==null mais faire passer par une variable donne un autre (c'est bizarre quand meme).
    de toute facon le equals devrai fonctionner meme si j'ai jamais comp^ris exactement la difference entre equals et ==

    un grand merci, mon prog va doubler point de vue pratique grace a vous

  12. #12
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par romuluslepunk
    meme si j'ai jamais comp^ris exactement la difference entre equals et ==
    "==" s'applique à un objet.
    Si par exemple tu fais ce test sur un objet de type "MonObjet" et que tu obtient qu'il est égal à null, c'est qu'il n'a pas été instancié.

    ".equals()" est une methode qui s'applique aux String :
    On test si la "valeur" de la String est égal à une autre, c'est-a-dire si les 2 String sont identique au niveau de leur contenu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Exemple : 
    String s1 = "Regis";
    String s2 = "romuluslepunk";
    String s3 = "REGIS";
     
    if(s1.equals(s2))<--- non, "Regis" n'est pas égal à "romuluslepunk"
    {}
     
    if(s1.equals(s3))<--- non, "Regis" n'est pas égal à "REGIS"
    {}
     
    if(s1.equalsIgnoreCase(s3))<--- oui, ces 2 string sont égal si on ne tient pas compte des majuscules ou minuscules par "equalsIgnoreCase()"
    {}
    J'espère que c'est plus clair pour toi.

  13. #13
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut
    donc equals est idem a == mais a ete concu pour les string ..
    j'utiliserais sa dorenavant 8)

    grand merci

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

Discussions similaires

  1. Mettre texte au format rtf dans un textarea en conservant la mise en forme
    Par alexxxx69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/03/2012, 17h21
  2. Comment garder la mise en forme d'un textarea ?
    Par dns78 dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2007, 14h53
  3. [Ajax]Mise en forme TEXTAREA
    Par baallrog dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/10/2006, 16h12
  4. Réponses: 4
    Dernier message: 19/10/2006, 11h51
  5. changer la mise en forme d'une partie d'un textarea
    Par gedeon555 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/08/2006, 11h48

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