Laço para identificar os componentes do tipo jtextfield

5 respostas
protonfranklin

Pessoal gostaria de saber se existe alguma foma de identificar num laço for, por exemplo, todos os componentes de um jFrame que são do tipo jtextfield?

Caso exista infomar código

Abração.

5 Respostas

leoramos

A classe JFrame tem um método chamado getContentPane, que te retorna um objeto da classe Container.
A classe Container tem um método chamado getComponents, que te retorna um array de objetos da classe Component.
Varre esse array com um laço for, testando a cada iteração com instanceOf

if (objeto instanceof classe_desejada)

e aí tu faz o que tu quiseres.

criador
if (obj instanceof JTextField)

Isto já resolve o seu caso!

leoramos

criador:
if (obj instanceof JTextField)

Isto já resolve o seu caso!

Ele precisa de um laço pra testar todos os objetos que estão em um JFrame… por isso os métodos anteriores, manja?

Marky.Vasconcelos

Se voce alterar esse código voce consegue.

private List<JTextComponent> getAllTextComps(Container cont,
			List<Component> mapped) {
		if (mapped == null)
			mapped = new ArrayList<Component>();
		for (Component comp : cont.getComponents()) {
			if (comp instanceof JTextComponent)
				mapped.add((JTextComponent)comp);
		        if (comp instanceof Container)
				mapComps((Container) comp, mapped);

		}
		return mapped;
	}

E para chamar.

List<JTextComponents> list = getAllTextComps(container,null);
protonfranklin

Meus caros amigos, muito obrigado. Problema resolvido.

Obrigado a todos.

Criado 15 de setembro de 2009
Ultima resposta 16 de set. de 2009
Respostas 5
Participantes 4