Excellent !
Merci beaucoup ça fonctionne parfaitement.
Pour information:
J'ai redéfini la classe PlainDocument et j'ai réimplémenté les méthode removeUpdate et insertString de cette classe. Dans ces méthode j'incrémente une varaible compteur de caractère. Et je met à jour mon label passé en paramètre dans la méthode constructeur de ma nouvelle classe. Ca donne ça:
public class SMSDocument extends PlainDocument {
JLabel lblStatus;
int nbChar=0;
public SMSDocument(JLabel lblStatus)
{
super();
this.lblStatus=lblStatus;
}
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
{
nbChar-=chng.getLength();
updateLabel();
}
void updateLabel()
{
/* Met à jour le label avec le nb de char */
/* ... */
}
public void insertString(int offs,
String str,
AttributeSet a)
throws BadLocationException
{
super.insertString(offs, str, a);
nbChar+=str.length();
updateLabel();
}
}Pour utilisé:
JLabel lbl=new JLabel("Nb char: 0");
JTextArea txt=new JTextArea("");
txt.setDocument(lbl);Et voila :-) !!
Merci encore twinuts pour cette très bonne idée !
Cyberdevil
[ Lien ]