Encerrar de vez a execução da Janela

Boa noite a todos;

Estou com uma duvida para encerrar a execução de uma janela.No caso, eu tenho uma janela principal na qual estou trabalhando, e quando eu clico em um outro botao ela abre outra janela com uma Jlist.

Beleza até ai funciona.Agora eu quero saber como que eu faço para encerrar por completo a execução daquela janela depois que o usuario selecionar o item na JList.
Eu quero que somente a janela principal continue executando.
Eu o setVisisblit(false) meu sei que ele só ocult.

Já tentou o método dispose()?

Té mais.

Já.Ele até fecha a janela, mas ele só fecha a janela.Quando eu aperto no botão pra abrir ela de novo, a antiga janela ainda continua lá.Elas ficam se “acumulando”


Pode postar o código?

Valeu.

classe botoes

package View;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;

public class Botoes extends JFrame implements ActionListener {

	private JButton botaoAbrirCSV, botaoSalvarCSV, botaoFechar,
			botaoImportarTabelaBanco, botaoAdd, botaoDelete,botaoDaJlist;
	private static Interface interfaceGrafica;
	private ListaGrafica minhaLista;
	private Container PopUp;

	public ArrayList<JButton> listaDeBotoes() {

		ArrayList<JButton> botoes = new ArrayList<JButton>();

		botaoAbrirCSV = new JButton();
		botaoSalvarCSV = new JButton();
		botaoFechar = new JButton();
		botaoImportarTabelaBanco = new JButton();

		ImageIcon icone1 = new ImageIcon(getClass().getResource(
				"Icones/abrir.png"));
		botaoAbrirCSV.setIcon(icone1);
		botaoAbrirCSV.setText("Abrir um arquivo CSV");

		ImageIcon icone2 = new ImageIcon(getClass().getResource(
				"Icones/salvar.png"));
		botaoSalvarCSV.setIcon(icone2);
		botaoSalvarCSV.setText("Salvar o arquivo CSV");

		ImageIcon icone3 = new ImageIcon(getClass().getResource(
				"Icones/fechar.png"));
		botaoFechar.setIcon(icone3);
		botaoFechar.setText("Fechar Aplicação");

		ImageIcon icone4 = new ImageIcon(getClass().getResource(
				"Icones/abrirBanco.png"));
		botaoImportarTabelaBanco.setIcon(icone4);
		botaoImportarTabelaBanco.setText("Abrir tabela do banco");

		botoes.add(botaoAbrirCSV);
		botoes.add(botaoSalvarCSV);
		botoes.add(botaoImportarTabelaBanco);
		botoes.add(botaoFechar);

		botaoAbrirCSV.addActionListener(this);
		botaoSalvarCSV.addActionListener(this);
		botaoFechar.addActionListener(this);
		botaoImportarTabelaBanco.addActionListener(this);

		return botoes;

	}

	public JButton botaoADD() {

		botaoAdd = new JButton();
		botaoAdd.setText("Adicionar");
		botaoAdd.addActionListener(this);

		ImageIcon icone = new ImageIcon(getClass().getResource(
				"Icones/adicionar.png"));
		botaoAdd.setIcon(icone);
		botaoAdd.setText("Adicionar linha");

		return botaoAdd;
	}

	public JButton botaoDelete() {

		botaoDelete = new JButton();
		botaoDelete.setText("Delete");
		botaoDelete.addActionListener(this);

		ImageIcon icone = new ImageIcon(getClass().getResource(
				"Icones/excluir.png"));
		botaoDelete.setIcon(icone);
		botaoDelete.setText("Excluir linha");

		return botaoDelete;

	}
	
	public JButton botaoDaJList(){
		
		botaoDaJlist = new JButton();
		botaoDaJlist.addActionListener(this);

		ImageIcon icone = new ImageIcon(getClass().getResource(
				"Icones/escolher.png"));
		botaoDaJlist.setIcon(icone);
		botaoDaJlist.setText("Abrir Tabela");

		return botaoDaJlist;
	}
	
	public void acaoBotaoImportarDoBanco(){
		minhaLista = new ListaGrafica();
		minhaLista.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		PopUp = getContentPane();
		PopUp.setLayout(new FlowLayout(FlowLayout.LEFT));
		PopUp.add(new JScrollPane(minhaLista.mostraLista()));
		PopUp.add(botaoDaJList());
		PopUp.setVisible(true);
	    this.setVisible(true);
	    this.setName("Escolher Tabela do banco");
	    this.setSize(300, 200);
	}

	public void acaobotaoAbrirCSV() {
		JFileChooser escolhedorDeArquivo = new JFileChooser();
		String caminhoProdutoSelecionado =  new String();
		try {
			escolhedorDeArquivo.setDialogTitle("Procurar o seu arquivo CSV");
			escolhedorDeArquivo.showOpenDialog(escolhedorDeArquivo);
			ExtensionFileFilter filter =  new ExtensionFileFilter("csv",new String[] { "csv" });
			escolhedorDeArquivo.setFileFilter((javax.swing.filechooser.FileFilter) filter);
			escolhedorDeArquivo.setFileFilter(null);
			caminhoProdutoSelecionado = escolhedorDeArquivo.getSelectedFile().getPath();
			
		} catch(NullPointerException e){
			JOptionPane.showMessageDialog(null,"Escolha o arquivo que deseja abrir!");
		}
		  catch (Exception e) {
			JOptionPane.showMessageDialog(null,"O Arquivo deve possuir a extensão CSV!");
		}
		
		System.out.println(caminhoProdutoSelecionado);
	}

	public void acaobotaoSalvarCSV() {
		File caminho;
		JFileChooser fileChooser = new JFileChooser();
		fileChooser.setSelectedFile(new File("teste.csv"));
		if (fileChooser.showSaveDialog(this) != JFileChooser.CANCEL_OPTION ) {
			caminho = fileChooser.getSelectedFile();
		}
		else{
			caminho = null;
		}
		
		String URL = caminho.toString();
		System.out.println(URL);
		
	}//fim do metodo

	public void acaobotaoFechar() {
		System.exit(0);
	}

	public void acaoBotaoAdd() {

		interfaceGrafica.getMinhaTabela().adicionaLinha();
	}

	public void acaoBotaoDelete() {
		interfaceGrafica.getMinhaTabela().deletaLinha();
	}
	
	public void acaoBotaoDaJList(){	
		System.out.println(minhaLista.retornaIndiceSelecionado());	
		minhaLista = null;
		PopUp =  null;
		this.dispose();
	}

	public void actionPerformed(ActionEvent evt) {

		if (evt.getSource() == this.botaoAbrirCSV) {
			acaobotaoAbrirCSV();
		} else if (evt.getSource() == this.botaoFechar) {
			acaobotaoFechar();
		} else if (evt.getSource() == this.botaoAdd) {
			acaoBotaoAdd();
		} else if (evt.getSource() == this.botaoDelete) {
			acaoBotaoDelete();
		} else if (evt.getSource() == this.botaoSalvarCSV) {
			acaobotaoSalvarCSV();
		}
		else if (evt.getSource() == this.botaoImportarTabelaBanco){
			acaoBotaoImportarDoBanco();
		}
		else if (evt.getSource() == this.botaoDaJlist){
			acaoBotaoDaJList();
		}

	}

	public static void main(String[] args) {
		
		interfaceGrafica = new Interface();
		interfaceGrafica.criaInterface();
	}

}

classe listagrafica

/*
 Este exemplo mostra como criar uma JList
 e obter o índice do item selecionado.

 Se nenhum item estiver selecionado, o valor
 -1 é retornado.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ListaGrafica extends JFrame{
  JList lista;  

  public int ListaGrafica() {
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};

    // Cria a JList
    lista = new JList(nomes);
 
    // Define a seleção única para a lista
    lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    // Um botão que permite obter o índice do item selecionado
    JButton btn = new JButton("Obter índice selecionado");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          int indice = lista.getSelectedIndex();

        }
      }
    );

    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));

    // Adiciona o botão à janela
    c.add(btn);  

    setSize(350, 250);
    setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
}// fim da classe
  
*/

//***********************************************************************
/*
 Este exemplo mostra como criar uma JList
 e obter o índice do item selecionado.

 Se nenhum item estiver selecionado, o valor
 -1 é retornado.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ListaGrafica extends JFrame{
  JList lista;  

  public int ListaGrafica() {
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};

    // Cria a JList
    lista = new JList(nomes);
 
    // Define a seleção única para a lista
    lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    // Um botão que permite obter o índice do item selecionado
    JButton btn = new JButton("Obter índice selecionado");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          int indice = lista.getSelectedIndex();

        }
      }
    );

    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));

    // Adiciona o botão à janela
    c.add(btn);  

    setSize(350, 250);
    setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
}// fim da classe
  
*/

//***********************************************************************

Marcelo;

Cara eu tambem estou com um problema parecido com você…
Minha janela abre e depois eu fecho ela.Quando eu abro ela de novo, ela está “duplicando” tambem