Probleme Onglets et JTextArea

Résolu/Fermé
Signaler
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007
-
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007
-
Bonjour, en fait j'ai un tabbedPane avec des onglets ki a chaque fois que je clik sur nouveau ca creer un onglet avec un jtextArea dedans :
JPanel panel = new JPanel();
panel.add(new JScrollPane(new JTextArea()));

Puis je l'ajoute et tout ...

En fait je voudrais savoir comment faire pour designer le jtextArea de l'onglet selectionné pasque je voudrais des truc du genre :

textArea.cut();
textArea..setText(null)

etc etc.......

Merci .

8 réponses

Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

quel getComponentAt te remonte ça?

cela dis j'ai un petit doute concernant le jscrollpane (en admettant que tu n'ai que le jtextarea dans le scrollpane de ton onglet) il me semble qu"il ne faut pas utiliser un getComponent vu que dans le scrollpane il y a un viewport donc voici un exemple qui fonctionne (faut changer d'ongle pour voir un truc se passer) :

import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Test{

    public Test(){
        JFrame f = new JFrame();
        f.setSize(300, 300);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(3);
       
        final JTabbedPane jtp = new JTabbedPane();
        for(int i = 1; i < 10; i ++){
            jtp.addTab("" + i, new JScrollPane(new JTextArea()));
        }
        jtp.addChangeListener(new ChangeListener(){
            public void stateChanged(ChangeEvent e) {
                Component compScroll =  jtp.getSelectedComponent();
                if(compScroll instanceof JScrollPane){
                    System.out.println("Ok c'est bien un JScrollPane");
                    JScrollPane jsp = (JScrollPane)compScroll;
                    Component compArea = jsp.getViewport().getView();
                    if(compArea instanceof JTextArea){
                        System.out.println("Ok c'est bien un JTextArea");
                        JTextArea area = (JTextArea)compArea;
                        if(area != null)//normalement il ne vaut pas null
                            area.append("Un petit texte ");
                    }
                }
               
            }
        });
        f.setContentPane(jtp);
        f.setVisible(true);
    }
   
   
   
    public static void main(String [] args){
        new Test();
    }
}

bref je pense vraiment que tu te fais ch*** pour rien

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

pas tt compris mais extrait le JTextArea en variable genre

private JTextArea jtextArea  = null;
.......
JPanel panel = new JPanel();
panel.add(new JScrollPane((jtextArea = new JTextArea())));
........

pense a modifier le layout du panel contenant le JScrollPane parceque un JScrollPane dans un panel ayant un FlowLayout c'est pas le top :D

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007

Non , c'est pas ca que je demande c comment est ce ke je fait pour designer le jtextArea de l'onglet selection ca ve dire de :

panel.add(new JScrollPane(new JTextArea()
));

voila et merci comme meme :)
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

idem toujours pas compri ce que tu demandes par "comment est ce ke je fait pour designer"

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007

en fait je voudrais savoir comment faire un :

JTextArea textArea = textArea de l'onglet selectionne

voila c tout et merci
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Oki tu vos quand tu veux :D

tu peux faire :

Component c1 = tabbedpanegetComponentAt(indexDeLonglet);
if(c1 instanceof JScrollPane){
    JScrollPane scroll = (JScrollPane)c1;
    for(int i = 0; i <
 scroll.getComponentCount(); i++)
       if(scroll.getComponentAt(i) instanceof JTextArea){
            JTextArea area = (JTextArea) scroll.getComponentAt(i);
            //c'est peut etre ton JTextArea
            break;
      }
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007

Dernier ptit probs
1) ca me dit que get ComponentAt(int) il ne reconnais pas alors j'ai verifier et c'est marqué kil faut getComponentAt(int x, int y);


2)Ca me fait toujours un nullPointerException alors ke j'ai bien changer le nom par textArea( c'est ce que je mets dans mes Actions )
Messages postés
26
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
3 février 2007

Merci beaucoup j'ai du un peu l'arranger mais bon ca marche et MERCI encore