Numero de componentes de um JInternalFrame

8 respostas
J

Boa noite…

Estou tentando fazer um método que recebe como parametro um JInternalFrame, verifica quantos componentes tem, de que tipo são e os “limpa”. Porém, não encontrei o método que retorna a quantidade de componentes, e o getComponentCount() não funciona.
Pelo que li na api, não tem nenhum.

Alguém tem alguma ideia?

desde ja, agradeço!

8 Respostas

lina

Oi,

Essa nunca tinha visto =P

Como você utilizou o método getComponentCount() ?

internalframe.getComponentCount() ?

já tentou,

internalframe.getContentPane().getComponentCount() ?

Tchauzin!

J

Huum, também não, ele retorna só cinco componentes e tenho bem mais.

lina

Oi,

Você não teria um JPanel adicionado e nele adicionado outros componentes?

é estranho!

Só por curiosidade, pq você gostaria de fazer isso ?

Tchauzin!

R

jessica: aproveitando a deixa da lina, um dos cinco componentes que o JInternalFrame informa ter não é um Container (por exemplo, um JPanel contendo outros componentes)?

J

não tenho um JPanel.

Quero fazer isso porque fica mais facil para limpar e validar campos sem ter que percorrer um por um.

lina

Oi,

Vou tentar encontrar um método para isso… porém só amanhã! estou sem meu Eclipse.
Pelo que eu li no javadoc, o método getComponentCount() retorna o número de componentes de seu container…

Poderia criar uma variavel inteira que a cada add np frame ela é incrementada =P

Minha pergunta é, você visivelmente sabe quantos componentes existem em sua tela. Ou seja, você sabe quantos componentes estão adicionados. Pq não usar fixamente?
Ou a sua ideia é ir adicionando componentes em tela?

Estranho essa sua dúvida :evil:

Tchauzin!

J

Eu sei sim quantos componentes eu tenho, mas é como te falei, é muito transtorno limpar um por um. Fiz isso em delphi onde passei o form e pegava os componentes e limpava. E agora quero aplicar em java, estou desenvolvendo no netbeans.

lina

Oi,

Olha o meu teste:

frame = new JFrame();
teste = new JButton();
teste2 = new JButton();
teste3 = new JButton();
teste4 = new JButton();
frame.add(teste);
frame.add(teste2);
frame.add(teste3);
frame.add(teste4);

System.out.println(frame.getContentPane().getComponentCount());

Resultado = 4

Está correto!

Mas acho que no seu caso, você não cria um frame! Você apenas extends ao JInternalFrame.

Então, você deverá fazer

teste = new JButton();
teste2 = new JButton();
teste3 = new JButton();
teste4 = new JButton();
getContentPane().add(teste);
getContentPane().add(teste2);
getContentPane().add(teste3);
getContentPane().add(teste4);

System.out.println(getContentPane().getComponentCount());

Resultado = 4

Tchauzin!

Criado 27 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 8
Participantes 3