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á.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”
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
*/
//***********************************************************************
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