Label[] vinculada em arraylist

Fiz como se fosse uma tabela manual.Ela pega os dados de uma JTextField quando uma certa tecla é ativada(enter ou 10) e aciona o void addComp();
O mesmo adiciona o texto do jtextfield para o arraylist list,nisso o addComp(); aciona o comando addCompList();
que faz o seguinte:

public void addListComp() {
int x = list.size(); //int para pegar o size do ArrayList

int y; //int para ser vinculado ao for
for(y = 0; y < x; y++) {

 label[y] = new JLabel(list.get(y)); //a cada vez do for o label[] pega o dado do y,e o mesmo só vai aumentando,ou seja,a cada vez que o For for chamado o label[y] cria um label com os dados do list.get(y)

label[y].setBounds(300,size,300,100); //o x por padrão sempre é 300,o y é 100 e vai aumentando
 
 add(label[y]); //adiciona o label[y] ao JFrame

 
 System.out.println(label[y].getText()); //printa no console os dados do label[y],para ver se tudo está indo bem
 size += 	 100; //no termino do for,o size aumenta 100,nesse caso o y aumenta 100,então os dados do label[y] sempre vão ter 100 de altura de distância entre cada

}
label[y] = new JLabel(); //atualizando os dados do label[y]
list = new ArrayList<>(); //atualizando os dados do arraylist<>();

repaint(); //atualizando a tela
}

Só que existe um problema nisso tudo,uma hora o label vai ocupar todo o espaço nos 500y de altura do jframe,começando a sair do jframe.Queria que quando 4 labels ocupassem a tela,os mesmos seriam apagados,repetindo tudo de novo,só que eu não consigo fazer isto.
Tentei um list.remove(x)(dentro do for) e um repaint();(fora do for) logo depois e não adiantou nada

Alguém sabe como remover os itens de uma list e atualizar os labels para os dados não aparecerem mais na tela?
Obrigado