Alô pessoal do fórum! Tenho um JPanel que tem 2 JTextField para cadastrar o nome de uma entidade e seu telefone de contato. Aí fiz um array JTextField[] pra adicionar um novo telefone a cada vez que o usuário clica em um botão. Então os JTextField vão sendo criados um embaixo do outro em tempo de execução. Do jeito que estou fazendo ele cria o primeiro JTextField na posicao correta, mas depois vai criando os outros em cima desse primeiro que ele criou. Mas como é que eu faço pra pegar a posição do elemento dentro do panel em tempo de execução para posiciona-los da maneira que eu quero? O código pra inserir os novos componentes tah assim:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// variavel imcrementada a cada vez que o usuario clica no botao
cont++;
int numTel = cont + 1;
int tamanho = 3;
JTextField[] listaTelefones = new JTextField[tamanho];
JTextField txtNovoTel = new JTextField();
JLabel[] listaLabels = new JLabel[tamanho];
JLabel labelNovoTel = new JLabel("Tel " + numTel + ":");
// Posicao que não to conseguindo atualizar a cada incremento do laço
int novaPosicaoLabel = labelTelefone.getY() * 2 - 12;
int novaPosicaoTxt = txtTelefone.getY() * 2 - 12;
for (int i = 0; i < listaTelefones.length; i++) {
listaTelefones[i] = txtNovoTel;
listaLabels[i] = labelNovoTel;
/* Seta a posicao e o tamanho dos componentes com base nos que jah foram criados na primeira vez que o panel aparece
labelTelefone --> label que aparece antes do usuário comecar a clicar no botao
txtTelefone --> textfield que aparece antes do usuário comecar a clicar no botao
*/
listaLabels[i].setBounds(labelTelefone.getX(), novaPosicaoLabel, labelTelefone.getWidth(), labelTelefone.getHeight());
listaTelefones[i].setBounds(txtTelefone.getX(), novaPosicaoTxt, txtTelefone.getWidth(), txtTelefone.getHeight());
panelTelefone.add(listaTelefones[i]);
panelTelefone.add(listaLabels[i]);
panelTelefone.revalidate();
panelTelefone.repaint();
}
}
Qualquer idéia eh muito bem vinda! 
As telas com os estados a cada click vao em anexo: