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 :

ajouter texte JTextPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut ajouter texte JTextPane
    hello à tous,

    voila jàai crée une JTextPane, et j'aimerais pouvoir insérer du texte et des images. Mon problèeme est que je définis le contenu de ma JTextPane avec un setText() (a mon avis pas optimum), et ensuite jàajoute une image qui se met directement a cote du texte, mais s je veux rajouter du texte après l'image, je sais pas comment faire, (car seText efface tout et écris le contenu)

    voila, je sais c'est un peu brouillon, mais voila quoi....

    Desole

    Jerome

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    montre nous ton code pour mieux comprendre , on peut pas deviner l'erreur de ton code

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut
    C'est pas une errur,

    C'est une méthode ou une manière de faire qui me manque...

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut
    erci beaucoup,


    ca marche nikel

  5. #5
    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
    Ce genre de question est souvent posée sur le forum : je te propose une implémentation de JTextPane, tu peux l'améliorer pour qu'elle te convienne mieux.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
     
    public class JTextPro extends JTextPane {
     
    	//CLASS VAR.
    	static final long serialVersionUID = 0;
    	//PRIVATE VAR.
    	private StyledDocument styledDoc = getStyledDocument();
    	//PROTECTED VAR.
    	protected float COMPONENT_ALIGNEMENT = 0.82f;
     
    	/**
             * Invoked for generate a style name.
             * @param bold
             * @param italic
             * @param underline
             * @param size
             * @param color
             * @return
             */
    	private static String getNameStyle(boolean bold, boolean italic, boolean underline, int size, Color color) {
    		StringBuffer sb = new StringBuffer();
    		if(bold) {
    			sb.append("1");
    		}else {
    			sb.append("0");
    		}
    		if(italic) {
    			sb.append("1");
    		}else {
    			sb.append("0");
    		}
    		if(underline) {
    			sb.append("1");
    		}else {
    			sb.append("0");
    		}
     
    		sb.append(size);
    		sb.append(color.getRGB());
     
    		return sb.toString();
    	}
     
    	/**
             * Invoked for create and bet back the style define by the parameters.
             * @param bold
             * @param italic
             * @param underline
             * @param size
             * @param color
             * @return
             */
    	private Style getStyle(boolean bold, boolean italic, boolean underline, int size, Color color) {
     
    		String styleName = JTextPro.getNameStyle(bold, italic, underline, size, color);
     
    		Style style = styledDoc.getStyle(styleName);
     
    		if(style != null) {
    			return style;
    		}else {
    			style = styledDoc.addStyle(styleName, styledDoc.getStyle(StyleContext.DEFAULT_STYLE));
     
    			StyleConstants.setBold(style, bold);
    			StyleConstants.setItalic(style, italic);
    			StyleConstants.setUnderline(style, underline);
    			StyleConstants.setFontSize(style, size);
    			StyleConstants.setForeground(style, color);
     
    			return style;
    		}
    	}
     
     
     
    	/**
             * Invoked for add a text to the end of the text pane.
             * @param texte
             * @param bold
             * @param italic
             * @param underline
             * @param size
             * @param color
             */
    	public synchronized void insertTextEnd(String texte, boolean bold,
    			boolean italic, boolean underline, int size, Color color) {
    			try {
    				styledDoc.insertString(styledDoc.getLength(),
    						texte, getStyle(bold, italic, underline, size, color));
    				setCaretPosition(styledDoc.getLength());
    			}catch(Exception e) {}
    	}
     
     
    	/**
             * Invoked for insert a icon at the selection space.
             * @param icon
             */
    	public synchronized void insertIconSelect(Icon icon) {
    		insertIcon(icon);
    	}
     
     
    	/**
             * Invoked for add a icon to the end of the text pane.
             * @param icon
             */
    	public synchronized void insertIconEnd(Icon icon) {
    		select(styledDoc.getLength(), styledDoc.getLength());
    		insertIconSelect(icon);
    	}
     
     
    	/**
             * Invoked for insert a component at the selection place.
             * @param c
             */
    	public synchronized void insertComponentSelect(JComponent c) {
    		c.setAlignmentY(COMPONENT_ALIGNEMENT);
    		insertComponent(c);
    	}
     
    	/**
             * Invoked for add a component to the end of the text pane.
             * @param c
             */
    	public synchronized void insertComponentEnd(JComponent c) {
    		select(styledDoc.getLength(), styledDoc.getLength());
    		insertComponentSelect(c);
    	}	
     
    }
    voilà voilà. Bonne chance.

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

Discussions similaires

  1. ajout texte sur une courbe
    Par heliconet dans le forum Visio
    Réponses: 2
    Dernier message: 22/01/2008, 22h39
  2. ajout texte dans cellule
    Par david06600 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2007, 16h35
  3. Ajouter texte à un Formulaire mail
    Par Pias dans le forum Langage
    Réponses: 7
    Dernier message: 05/11/2006, 19h05
  4. [FPDF] ajout texte dans un fichier pdf modèle?
    Par moabomotal dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/06/2006, 16h36
  5. Ajout texte dans un "" text box ""word ?
    Par NANARD13 dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2006, 16h34

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