[URGENTE] Capturar componentes passados como parâmetro

Olá!
Então… Vou dar um exemplo, pois creio ser o jeito mais fácil de passar a minha dificuldade

import javax.swing.*;

public class Principal {
	JFrame frame = new JFrame();
	//
	JPanel painel = new JPanel();
        JScrollPane scroll = new JScrollPane();
	//
	JLabel label ;
	JTextField texto ;
	//
	public void criarTela() {
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setLayout(new GridLayout(2,1));
		//
		painel.setLayout(new MigLayout());
		//
		for (int i=0 ; i<80 ; i++) {
			painel.add(new JLabel("Texto "+i));
			painel.add(new JTextField());
			
		}
		//
		scroll_question.setViewportView(painel);
                //
		frame.add(scroll);
		//
		frame.setVisible(true);
               //
		
	}
	
}

Claro que é apenas um exemplo, o original está adicionando tranquilamente novos Componentes e “rolando” o JPanel com o JScrollPane tranquilamente. A pergunta é…

Ali no meu for estou adicionando os componentes JLabel e JTextField. Mas como posso capturar o texto digitado no JTextField?

Detalhe: Não existe uma quantidade limite para o for ficar rodando. Neste exemplo usei 80 como limite, mas no sistema real pode ser 20, pode ser 100, pode ser qualquer valor, dependendo do que usuario quer…

existem alguns método que manipulam sua view como por exemplo: getComponents, getComponentCount, getComponentAt, getComponent… Procure no javadoc esses métodos do JPanel para maiores informações… mas, na minha opinião vejo o seu exemplo não muito claro para mim… Não vejo a funcionalidade coerente do seu sistema… neste aspecto, talvez falta-me imaginação :slight_smile:

Bem, uma solução que eu acho mais simples, que não vai alterar tanto o desempenho do seu sistema, em uma primeira analise e fazer uma array de elementos tipo

Jlabel[] labels = new JLabel[quantidadeDeElementos]
JTextField textFields = new JTextField[quandidadeDeElementos]

for (int i=0 ; i< quantidadeDeElementos ; i++) {
     labels[i] = new JLabel("Texto "+i);
     textFields[i] = new JTextField();
     painel.add(labels[i]);
     painel.add(textFields[i]);
}

assim é só procurar fazer uma busca na array ou até mesmo iterar para pegar todos os dados um por um ou fazer um conta, sei lá por exemplo, não sei se é o caso, o total dos dados do textField…

O sistema é simples… Muito obrigado pela ajuda :wink:
Vou seguir esta forma de fazer, pois não vem nada à mente para resolver… rs

Apesar disso, continuo buscando.
Muito obrigado pela ajuda, me iluminou aqui kk

Novamente, obrigado!

se você poder explicar melhor poderá ter mais respostas esclarecedoras… fica a dicam :slight_smile:
No momento não entendi muito bem sua pretensão por isso imaginei algo deste tipo…