JTable - Excluir uma linha
Como faço pra excluir uma linha da minha JTable?
assim: o cara faz uma pesquias no banco de dados e mostra na tabela, dai ele seleciona uma linha e aperta em um botão excluir, dai o registro selecionado é excluido do banco, mas a tabela fica estatica, tem um metodo que faz com que aque linha excluida desapareça??
[]´s

Estevão Hess
Curtidas 0
Respostas

Lucas Teixeira
09/04/2009
((DefaultTableModel) suaTabela.getModel()).removeRow(indiceDaLinha);
GOSTEI 0

Louzadalima
09/04/2009
Seguinte,
Pelo que tenho percebido, muita gente tem dúvidas em relação a lidar com JTables.
BOm, sempre que vc for modificar os valores (dados) de uma tabela, não é na tabela propriamente dita que você vai mexer, mas sim no modelo (TableModel).
No momento em que você fez a consulta no banco, vocÊ alimentou esse table model para que o mesmo pudesse apresentar os dados de acordo com a necessidade do seu sistema certo??? Pois é, agora o caso é o mesmo, você modificou o banco de dados, porem não avisou o seu modelo que essa alteração existiu.
Siga o seguinte esquema.
Atualizações avisam o TableModel que avisa a Tabela.
GOSTEI 0

Estevão Hess
09/04/2009
[quote="lucastex"]
Ve se funciona
Lucas,
o seguinte erro ocorre quando coloco o seguite codigo:
((DefaultTableModel) suaTabela.getModel()).removeRow(indiceDaLinha);
((DefaultTableModel) tabela.getModel()).removeRow(tabela.getSelectedRow());
GOSTEI 0

Carlos Coral
09/04/2009
Será que não está faltando um import?
Dá uma olhada ae.
import javax.swing.table.*;
GOSTEI 0

Edinei Manica
09/04/2009
Falta o import
import javax.swing.table.DefaultTableModel
GOSTEI 0

Estevão Hess
09/04/2009
Agora funcionou, tava faltando o import javax.swing.table.*;
valeu
GOSTEI 0

Menina Poderosa
09/04/2009
Eu quero apagar uma linha do JTable quando pressionar no [b]Botão Excluir[/b]
A minha classe Principal tem os seguintes comandos :
a classe tem os metodos deleteLine e deleteAll:
Mas não funciona corretamemente e estou tentando utilizar o comando indicado no post acima e não estou sabendo utilizar: :cry:
public void actionPerformed(ActionEvent e) { int result = JOptionPane.showConfirmDialog(null,"Deseja Excluir ? ","Excluir",JOptionPane.YES_NO_CANCEL_OPTION); if(result == JOptionPane.YES_OPTION) { [b]myTableParametros.deleteLine(1);[/b] // System.out.println("O botão sim foi pressionado"); } else System.out.println("O botão não foi pressionado"); } });
public class MyTableModel3 extends AbstractTableModel{ public boolean deleteLine(int line){ linhas.remove(line); return true; } public boolean deleteAll(){ linhas.clear(); return true; }
((DefaultTableModel) myTableParametros.getModel()).removeRow(myTableParametros.getSelectedRow());
GOSTEI 0

Edinei Manica
09/04/2009
[quote="Menina Super Poderosa"]Eu quero apagar uma linha do JTable quando pressionar no [b]Botão Excluir[/b]
A minha classe Principal tem os seguintes comandos :
a classe tem os metodos deleteLine e deleteAll:
Mas não funciona corretamemente e estou tentando utilizar o comando indicado no post acima e não estou sabendo utilizar: :cry:
É que o codigo não ta completo, e as JTable tem diversas formas de ser implementadas e para cada uma dessas formas tem um jeito correto para deletar, então com este pouco de código tá dificil de descobrir qual é o problema !!!
:arrow: :arrow:
public void actionPerformed(ActionEvent e) { int result = JOptionPane.showConfirmDialog(null,"Deseja Excluir ? ","Excluir",JOptionPane.YES_NO_CANCEL_OPTION); if(result == JOptionPane.YES_OPTION) { [b]myTableParametros.deleteLine(1);[/b] // System.out.println("O botão sim foi pressionado"); } else System.out.println("O botão não foi pressionado"); } });
public class MyTableModel3 extends AbstractTableModel{ public boolean deleteLine(int line){ linhas.remove(line); return true; } public boolean deleteAll(){ linhas.clear(); return true; }
((DefaultTableModel) myTableParametros.getModel()).removeRow(myTableParametros.getSelectedRow());
GOSTEI 0

Menina Poderosa
09/04/2009
Meu amigo, o codigo já esta funcionando, a linha esta sendo apagada corretamente, o problema é o seguinte:
O JTable somente atualiza a tabela (remove a linha) quando, por exemplo, maximizar ou mininar a janela. Eu que gostaria que a atualização fosse feito no momento que em o botão YES for pressionado.
GOSTEI 0

Edinei Manica
09/04/2009
[quote="Menina Super Poderosa"]Meu amigo, o codigo já esta funcionando, a linha esta sendo apagada corretamente, o problema é o seguinte:
O JTable somente atualiza a tabela (remove a linha) quando, por exemplo, maximizar ou mininar a janela. Eu que gostaria que a atualização fosse feito no momento que em o botão YES for pressionado.
experimenta usar :
tabela.repaint();
GOSTEI 0

Lucas Teixeira
09/04/2009
[quote="Edinei Manica"][quote="Menina Super Poderosa"]Meu amigo, o codigo já esta funcionando, a linha esta sendo apagada corretamente, o problema é o seguinte:
O JTable somente atualiza a tabela (remove a linha) quando, por exemplo, maximizar ou mininar a janela. Eu que gostaria que a atualização fosse feito no momento que em o botão YES for pressionado.
experimenta usar :
tabela.repaint();
GOSTEI 0

Menina Poderosa
09/04/2009
Funcionou..
Valeu!!
:!:
GOSTEI 0

Edinei Manica
09/04/2009
[quote="Menina Super Poderosa"]Funcionou..
Valeu!!
:!:
funcionou com o repaint() ou com o revalidate () ?
GOSTEI 0

Lucas Teixeira
09/04/2009
[quote="Edinei Manica"][quote="Menina Super Poderosa"]Funcionou..
Valeu!!
:!:
funcionou com o repaint() ou com o revalidate () ?GOSTEI 0

Edinei Manica
09/04/2009
[quote="lucastex"][quote="Edinei Manica"][quote="Menina Super Poderosa"]Funcionou..
Valeu!!
:!:
funcionou com o repaint() ou com o revalidate () ?GOSTEI 0

Lucas Teixeira
09/04/2009
[quote="Edinei Manica"][quote="lucastex"][quote="Edinei Manica"][quote="Menina Super Poderosa"]Funcionou..
Valeu!!
:!:
funcionou com o repaint() ou com o revalidate () ?GOSTEI 0