()*

.

.

.

.

Thiago, se vc continuar com esse comportamento de ficar "re-enviando" a msma msg várias vezes não vai obter resultados aqui no fórum.
Leia as regras do fórum, tenha bons modos e o povo ajuda. Se ficar desse jeito o pessoal não vai ajudar propositalmente.

Alias, mandar msg em PVT pra que alguém veja seu tópico público tb é pra lá de estranho…

Enfim, vamos lá, vou tentar te ajudar. Mas sem desesperos ok?

Eu faço o que vc quer em alguns lugares aqui, não só com JButtons. Por ex, nesse pedaço da tela eu faço, dá uma olhada:

Todos esses campos eu monto em tempo de execução, de acordo com o que for selecionado em um combo que tem antes. Cada vez q muda o combo, eu tiro todos esses componentes da tela e refaço.
Se vc prestar atenção, em cada linha eu tenho um label, um botão, um combo e outro label.

Agora o trecho do fonte onde eu faço isso (dei uma resumida, pra ficar só o que te interessa):

[code] private void carregaFiltrosRelatorioNaTela(){

	// crio um array com os componentes que deverão aparecer na tela, já formatados e prontos para serem exibidos
	Component[][] c = new Component[rp.aFiltros.size()][4];
	int pos = 0; // posicao que o componente estara no array de componentes dentro do panel
	
	for (int i = 0; i < rp.aFiltros.size(); i++){
		
		JLabel labelA = new JLabel();
		labelA.setFont(new java.awt.Font("Arial", 0, 11));
		labelA.setForeground(cor);
		labelA.setText(filtro.getCampo().getDescricao());
		labelA.setPreferredSize(new java.awt.Dimension(130, 14));
		labelA.setName(String.valueOf(pos++));
		
		JButton botao = new JButton();
        botao.setFont(new java.awt.Font("Arial", 0, 12));
        botao.setForeground(cor);
        botao.setText("...");
        botao.setToolTipText(BaseLib.getRb().getString("preencherFiltro"));
        botao.setPreferredSize(new java.awt.Dimension(16, 16));
        botao.addActionListener(rp.actionListener);
        botao.addKeyListener(rp.keyListener);
        botao.setName(String.valueOf(pos++));
        
        JComboBox combo = new JComboBox();
        combo.setFont(new java.awt.Font("Arial", 0, 11));
        combo.setForeground(cor);
        combo.setToolTipText(BaseLib.getRb().getString("escolherFiltro"));
        combo.setModel(new javax.swing.DefaultComboBoxModel(opcao.toArray()));
        combo.setPreferredSize(new java.awt.Dimension(90, 22));
        combo.addKeyListener(rp.keyListener);
        combo.setName(String.valueOf(pos++));
		
		JLabel labelB = new JLabel();
		labelB.setFont(new java.awt.Font("Arial", 0, 11));
		labelB.setForeground(cor);
		labelB.setText("");
		labelB.setName(String.valueOf(pos++)); // não especifico o tamanho para esse label para que ele fique "autosize" durante a execução

		c[i][0] = labelA;
		c[i][1] = botao;
		c[i][2] = combo;
		c[i][3] = labelB;
	}
	//

	// limpo os componentes do panel
	rp.pnlFiltro.removeAll();
	//
	
	// adiciono os componentes no panel
	org.jdesktop.layout.GroupLayout pnlFiltroLayout = new org.jdesktop.layout.GroupLayout(rp.pnlFiltro);
	rp.pnlFiltro.setLayout(pnlFiltroLayout);

	ParallelGroup grupoParalelo1 = pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING);
	ParallelGroup grupoParalelo2 = pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING);
	ParallelGroup grupoParalelo3 = pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING);
	ParallelGroup grupoParalelo4 = pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING);

	for (int i = 0; i < c.length; i++){
		grupoParalelo1.add(c[i][0], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE);
		grupoParalelo2.add(c[i][1], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE);
		grupoParalelo3.add(c[i][2], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE);
		grupoParalelo4.add(c[i][3], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE);
	}

	pnlFiltroLayout.setHorizontalGroup(
			pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
			.add(pnlFiltroLayout.createSequentialGroup()
					.addContainerGap()
					.add(grupoParalelo1)
					.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
					.add(grupoParalelo2)
					.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
					.add(grupoParalelo3)
					.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
					.add(grupoParalelo4)
					.addContainerGap((int)rp.scpFiltro.getSize().getWidth(), Short.MAX_VALUE))
	);

	SequentialGroup grupoSequencial = pnlFiltroLayout.createSequentialGroup().addContainerGap();

	for (int i = 0; i < c.length; i++){
		grupoSequencial.add(pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
				.add(c[i][2], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
				.add(c[i][1], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
				.add(c[i][0], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
				.add(c[i][3], org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE));

		if (i != c.length-1)
			grupoSequencial.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED);
	}
	grupoSequencial.addContainerGap((int)rp.scpFiltro.getSize().getHeight(), Short.MAX_VALUE);

	pnlFiltroLayout.setVerticalGroup(
			pnlFiltroLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
			.add(grupoSequencial)
	);

	rp.scpFiltro.setViewportView(rp.pnlFiltro);
	//
	
	c = null;
}

[/code]

Adapte de acordo com o que vc precisa. Na verdade oque vc precisa é mais simples do que o que eu faço ai…

Boa sorte!

seuContainer.remove(oComponentQueQuerRemover);

Se precisar procurar qual vai remover, temos o seuContainer.getComponents() que retorna um Component[] que vc pode percorrer até encontrar o que deseja.