[java] JTextArea

-platon- -  
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,

j'ai un petit probleme de saut de ligne dans une JTextArea : je voudrait qu'a chaque fois que j'ajoute du texte, il soit a la ligne. Mais je ne trouve pas comment il faut faire et surtout si c possible. Peut être qu'il y a dautre objet qui le permettent ?
Est-il également possible de rediriger la sortie standart vers un objet pour que celle-ci s'affiche dans mon interface graphique ?
merci pour vos réponses....
guillaume.

1 réponse

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Oui, c'est possible, tu te fais une méthode qui écrit ta propre classe :
    import java.swing.*;
    
    public class MonJTextArea extends JTextArea {
        
        // La zone de texte :
        private JTextArea text;
        
        // LISTE DES CONSTRUCTEURS :
        // Sans rien :
        MonJTextArea ( ) {
            this.text = new JTextArea();
        }
        // Avec un texte dès la création :
        MonJTextArea ( String texte ) {
            this.text = new JTextArea(texte);
        }
        // Avec un taille définie :
        MonTextArea ( int rows, int columns ){
            this.text = nex JTextArea(rows,columns);
        }
        
        // Accesseurs :
        public JTextArea get_text ( ) { return this.text; }
        public void set_rows( int rows ) {
            this.setRows(rows);
        }
        public void set_columns( int columns ) {
            this.setColumns(columns);
        }
        
        // Méthodes de classes :
        public void addText ( String texte, int mode, int line_insert ) {
            switch(mode)
            {
                case 0: // Ajoute le texte à la fin :
                    text.append(texte);
                    break;
                case 1: // Insert mode
                    text.insert(texte,line_insert);
                    break;
                case 2: // Suppression, puis écriture :
                    int lines = this.getLineCount();
                    if( lines > 0)
                        text.replaceRange(getLineStartOffset(0),getLineEndOffset(lines),texte);
                    else
                        System.out.println("Zone de texte sans taille");
                    break;
                default:
                    break;
            }
        }
    }
    


    Voilà, c'est juste un exemple de ce que tu pourrait faire. Comme ca tu créer ton objet comme si c'était un JTextArea, et quand tu veux écrire dedans, tu fais appel à la méthode écrite à cet effet.

    Ca n'a pas été tester, donc....

    ++
    0