Fórum JTable - Excluir uma linha #567317

09/04/2009

0

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

Estevão Hess

Responder

Posts

09/04/2009

Lucas Teixeira

1
((DefaultTableModel) suaTabela.getModel()).removeRow(indiceDaLinha);
Ve se funciona
Responder

Gostei + 0

09/04/2009

Louzadalima

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.
Responder

Gostei + 0

09/04/2009

Estevão Hess

[quote="lucastex"]
1
((DefaultTableModel) suaTabela.getModel()).removeRow(indiceDaLinha);
Ve se funciona
Lucas, o seguinte erro ocorre quando coloco o seguite codigo:
1
((DefaultTableModel) tabela.getModel()).removeRow(tabela.getSelectedRow());
cannot resolve symbol symbol: class DefaultTableModel Tem algum erro ai, ou isso não funciona mesmo??
Responder

Gostei + 0

09/04/2009

Carlos Coral

Será que não está faltando um import?
1
import javax.swing.table.*;
Dá uma olhada ae.
Responder

Gostei + 0

09/04/2009

Edinei Manica

Falta o import
1
import javax.swing.table.DefaultTableModel
Responder

Gostei + 0

09/04/2009

Estevão Hess

Agora funcionou, tava faltando o import javax.swing.table.*; valeu
Responder

Gostei + 0

09/04/2009

Menina Poderosa

Eu quero apagar uma linha do JTable quando pressionar no [b]Botão Excluir[/b] A minha classe Principal tem os seguintes comandos :
1
2
3
4
5
6
7
8
9
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");
                    }
                });
a classe tem os metodos deleteLine e deleteAll:
1
2
3
4
5
6
7
8
9
10
public class MyTableModel3 extends AbstractTableModel{
public boolean deleteLine(int line){
            linhas.remove(line);
            return true;
        }
     
        public boolean deleteAll(){
            linhas.clear();
            return true;
        }
Mas não funciona corretamemente e estou tentando utilizar o comando indicado no post acima e não estou sabendo utilizar: :cry:
1
((DefaultTableModel) myTableParametros.getModel()).removeRow(myTableParametros.getSelectedRow());
Responder

Gostei + 0

09/04/2009

Edinei Manica

[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 :
1
2
3
4
5
6
7
8
9
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");
                    }
                });
a classe tem os metodos deleteLine e deleteAll:
1
2
3
4
5
6
7
8
9
10
public class MyTableModel3 extends AbstractTableModel{
public boolean deleteLine(int line){
            linhas.remove(line);
            return true;
        }
     
        public boolean deleteAll(){
            linhas.clear();
            return true;
        }
Mas não funciona corretamemente e estou tentando utilizar o comando indicado no post acima e não estou sabendo utilizar: :cry:
1
((DefaultTableModel) myTableParametros.getModel()).removeRow(myTableParametros.getSelectedRow());
É 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:
Responder

Gostei + 0

09/04/2009

Menina 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.
Responder

Gostei + 0

09/04/2009

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 :
1
tabela.repaint();
Responder

Gostei + 0

09/04/2009

Lucas Teixeira

[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 :
1
tabela.repaint();
o metodo [b]validate()[/b] também faz milagres! :)
Responder

Gostei + 0

09/04/2009

Menina Poderosa

Funcionou.. Valeu!! :!:
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="Menina Super Poderosa"]Funcionou.. Valeu!! :!:
funcionou com o repaint() ou com o revalidate () ?
Responder

Gostei + 0

09/04/2009

Lucas Teixeira

[quote="Edinei Manica"][quote="Menina Super Poderosa"]Funcionou.. Valeu!! :!:
funcionou com o repaint() ou com o revalidate () ?
ambos funcionam legal..... o validate() é um metodo que eh herdado de container, por isso, dah o repaint em tudo... já o repaint() é herdade de component, ou seja, repinta apenas akele objeto... :!: :!: :o
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="lucastex"][quote="Edinei Manica"][quote="Menina Super Poderosa"]Funcionou.. Valeu!! :!:
funcionou com o repaint() ou com o revalidate () ?
ambos funcionam legal..... o validate() é um metodo que eh herdado de container, por isso, dah o repaint em tudo... já o repaint() é herdade de component, ou seja, repinta apenas akele objeto... :!: :!: :o Valeu, então é por isso, eu tava fazendo uma tela aqui e tava dando um repaint() e ela não estava sendo atualizada, dai eu tentei com o revalidate() e deu certo!!! Valeu!!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar