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

Interfaces Graphiques en Java Discussion :

Formater un texte


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Par défaut Formater un texte
    Bonjour à tous,

    Je recherche une méthode pour formater un texte, voila exactement ce que je veux:
    1/ je puisse mettre en gras, italique et surligner ou encore surligner au fluo (si possible) le texte.
    2/ je souhaite avoir un texte souligné. des que le souris survole le texte souligné, alors s'affichera une sorte de bulle d'aide avec un commentaire dedans. Cependant, chaque partie souligné aura un commentaire différent (ce ne sont pas réellement des commentaires, mais plutot des URL)
    3/ Les partie souligné peut etre clicable et alors s'ouvrirait une nouvelle fenetre.

    J'ai vu qu'il yavait un truc en JFACE qui pourrait faire ca, mais je ne sais pas faire fonctionner JFace sous ECPLIPSE (j'ai deja commencé sous eclipse le projet).

    Je vous remercie d'avance.

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Tout ça est réalisable grâce au JTextPane il me semble. Fait une petite recherche pour des explications sur son utilisation, mais je pense qu'il permet de faire ce que tu veux. Bonne chance.

  3. #3
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Par défaut
    Merci à toi,

    je vais lire la doc.
    Toutefois je laisse le topic ouvert pour d'autres idées

  4. #4
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Par défaut
    Bonjour,

    j'ai donc utilisé un JPane, mais voila, j'ai un petit souci:

    J'ai lu la fac (http://java.developpez.com/faq/gui/?page=awtSwingTexte) et utilisé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /** Redéfini pour choisir l'effet de style à utiliser */
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
            try {               
                    if ( str.equals ("HELP") ) {
                            super.insertString (offs, str, getStyle ("styleOp"));
                    } else {
                             /** Sinon le texte est écrit avec le style "styleNormal" */
                            super.insertString (offs, str, getStyle ("styleNormal"));
                    } 
            } catch (BadLocationException e) {
                    System.out.println ("Tuuuttt erreur Insere");
            } 
    }
    Mais moi, j'ai des string à inserer mais pas de cette manière:
    Dans cet exemple, on regarde si le string = "HELP", si c'est le cas, on l'insert avec un style, sinon, on l'insert avec un autre style (style normal)
    Mais moi j'ai un int (un flag) avec mes String, si ce flag == 1, alors on est dans le meme cas que si string == "help".
    Donc on résumé:
    Si flag == 1, on insert le string avec un style "rouge" (par exemple)
    Sinon, on l'insert de maniere normale. J'ai donc modifié ce qui est en haut pour donner ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void insertString(int offs, String str, AttributeSet a, int flag) throws BadLocationException
    	{	try
    		{	
    			if ( flag == 1 )
    			{	super.insertString (offs, str, getStyle ("styleOp"));
    			}
    			else // sinon le texte est ecrit avec le style "styleNormal"
    			{	super.insertString (offs, str, getStyle ("styleNormal"));
    			}
    		}
    		catch (BadLocationException e)
    		{	System.out.println ("Tuuuttt erreur Insere");
    		}
    	}

    Mais je ne sais pas comment on l'utilise???
    voila je Jpane:
    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
    17
    18
    19
    private JTextPane getJTextPane() {
    		if (jTextPane == null) {
    			jTextPane = new JTextPane();
    			jTextPane.setBounds(new Rectangle(6, 178, 1011, 389));
    			style = new StyleAide (new StyleContext ());
    			jTextPane.setDocument (style);		
    			jTextPane.setText("test1");
    			try
    			{
    				style.insertString(style.getLength(), "test flag 1", jTextPane.getStyle("styleOp"), 1);
    			}
    			catch (BadLocationException e)
    			{	
    				System.out.println ("Tuuuttt erreur Insere");
    			}
     
    		}
    		return jTextPane;
    	}
    mais cette denriere ne fonstionne pas, il n'ya pas d'erreur, mais mon ordi rame (HDD qui gratte) et mon jframe apparait gris sans rien dedans. Je suis obligé de l'arreter, sinon il n'en fini pas.

    Quelqu'un peut-il m'aider?

    PS/ mon Jpane est dans une fenetre où il y a d'autres elements.

  5. #5
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Tu ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public void insertString(int offs, String str, AttributeSet a, int flag)
    Cette méthode insertString, ce n'est pas toi qui l'appelle, elle est prévue de base et doit donc restée telle qu'elle...

    La solution, c'est que flag soit un attribut, et que tu aies qqchose qui change cet attribut flag (je sais pas ce que tu veux faire exactement, mais imaginons que quand on click sur un bouton ca change flag)...

  6. #6
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Par défaut
    Tout dabors merci pour cette précision.
    Je m'explique pour mon probleme.
    J'ai un tableau de string tab[500][2]
    Dans tab[i][0] ya des phrases (venant d'un texte) et dans tab[i][2] ya des int (un flag) qui peut etre =0 ou 1. (bien entendu je trnansforme le string en int )

    Je parcours ensuite le tab[500] et prends un par un les elements. Je ragarde le flag du string en cours d'analyse: si c'est =0, je prend un style normal et je l'insere dans le JPANE, sinon, si flag =1, je prends un style particulier et je l'insere aussi dans JPANE.

    Voilà

    J'espere que cela pourra vous aider pour mieux me guider.

    D'avance un grand merci

Discussions similaires

  1. Formater du texte en shell
    Par YéTeeh dans le forum Linux
    Réponses: 8
    Dernier message: 19/01/2006, 11h46
  2. Formater un texte dans une expression
    Par stéphane_ais2 dans le forum Access
    Réponses: 5
    Dernier message: 18/10/2005, 13h52
  3. Format champ texte
    Par Smint dans le forum Access
    Réponses: 4
    Dernier message: 15/09/2005, 16h27
  4. [LG]Formater le texte dans un WriteLn
    Par busy999 dans le forum Langage
    Réponses: 16
    Dernier message: 15/11/2003, 11h16
  5. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27

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