[Resolvido]Como pegar um JTextArea de dentro de um JScrollPane

3 respostas
mateusviccari

Olá, fiz uma aplicação no netbeans arrastando um textarea pra janela, e o netbeans ja botou o textarea dentro de um jscrollpane, muito bem:
Então minha ideia era fazer um laço percorrendo os componentes do jscrollpane até que o componente fosse um jtextarea, fiz assim:

JScrollPane jsp=meuScrollPane; Component[] compJSP=jsp.getComponents(); for(int k=0;k<compJSP.length;k++){ System.out.println(compJSP[k].getClass().getName()); if(compJSP[k] instanceof JTextArea) System.out.println(( (JTextArea)compJSP[k] ).getText()); }
Mas não funciona. o estranho é que mandando mostrar qual é o componente atual de cada iteração, ele mostra somente esses 3 componentes, mas neenhum deles é o JTextArea:
javax.swing.JViewport
javax.swing.JScrollPane$ScrollBar
javax.swing.JScrollPane$ScrollBar

O que estou fazendo errado?

3 Respostas

mateusviccari

Galer ja resolvi, acontece que o jscrollpane tem uma jviewport, e é nessa viewport que eu tenho que percorrer procurando pelo jtextarea.

ns.bruno

mateusviccari posta um exemplo que você fez cara.

mateusviccari

Vish esse topico é velho, nem tenho mais os fontes q utilizei no exemplo, mas pra pegar o jTeaxArea dentro de um jScrollPane sem ter referencia direta a esse jScrollPane, voce pode fazer assim:

JViewport vp = jScrollPane1.getViewport();
        for(Component comp : vp.getComponents()){
            if(comp instanceof JTextArea){
                JTextArea jta = (JTextArea) comp;
                jta.setText("Este eh o jTextArea pego através da iteração dos componentes");
            }
        }
Criado 2 de fevereiro de 2012
Ultima resposta 3 de jul. de 2013
Respostas 3
Participantes 2