Atualizar nome de um objeto dentro de um loop

Fala galera! Sou novo por aqui e esse é meu primeiro tópico, por isso peço perdão se estiver fazendo algo errado… :sweat_smile:

Bom, estou começando a estudar java orientação a objetos.

Estou tentando criar um programa que calcule a tabuada de um determinado número digitado pelo usuário dentro de um “TextField”.

O problema é que dentro do FOR que calcula o resultado, não consigo atualizar o nome dos “jLabels”:

int num = Integer.parseInt(lblNumTab.getText());
int result;

    for (int cont = 1;cont <= 10;cont++){
        
        result = num * cont;
        
        lblNum1.setText(Integer.toString(num));   

//Gostaria de usar o valor da variavel cont ao invés do numero, algo como lblNum+CONT.setText

        lblVal1.setText(Integer.toString(result));  // A mesma coisa aqui.
    }

Há alguma forma de concatenar o nome desse objeto com o valor da variável cont para que o mesmo atualize automaticamente quando o loop for executado?

Desculpem por não me expressar corretamente.

Para concatenar o conteúdo do JLabel:

lblNum1.setText(lblNum1.getText() + stringAConcatenar);

No mais a pergunta ficou um pouco confusa. Por favor, leia novamente e esclareça o problema.

No primeiro loop do laço está assim:

lblNum1.setText();

Quero saber se tem como substituir o numeral do nome dessa JLabel pela variável contador. Para que autimaticamente, durante a execução do for, esse nome seja atualizado. Por exemplo:

1º Loop
lnlNum1.setText();

2º Loop
lnlNum2.setText();

3º Loop
lnlNum3.setText();

e assim por diante…

Há alguma forma de inserir a variavel contador no nome dessa JLabel?
Algo como lblNum**[contador]**.setText();

Até onde sei isso não é possível, mas existem alternativas mais eficientes.

Nesse caso você usa um array.

Você inicializaria suas JLabels assim:

    	// Cria um array de JLabels que começa em 0 e vai até dez, totalizando
		// 11 itens (contando o 0);
		JLabel[] labelsFator = new JLabel[11];
		JLabel[] labelsProduto = new JLabel[11];
		// Se quiser ignorar o 0, inicialize "int i = 1"
		for (int i = 0; i < labelsFator.length; i++) {
			labelsFator[i] = new JLabel();
			labelsProduto[i] = new JLabel();
			// adiciona aqui a label na sua janela, como já fazia ates com
			// lblNum1 e lblVal1
		}

Dentro do for que faz a multiplicação você usa a variável cont para acessar a posição devida no array:

	int num = 5;
	int result;
	for (int cont = 1; cont <= 10; cont++) {

		result = num * cont;

		// Se num = 5, então labelsFator[1].getText() == "5 * 1"
		labelsFator[cont].setText(num + " * " + cont);
		labelsProduto[cont].setText(Integer.toString(result));
	}