Como atualizar a linha do jTable e o registro do banco de dados

4 respostas
J

Olá pessoal,
quero saber como faço para atualizar a linha do Jtable
assim como no meu banco de dados
e só pedindo outra coisa
excluir também,[color=green] [/color]
estou usando o modelo MVC

desde já agradeço pela atenção…

segue o modelo da minha tabela
public class FornecedorTableModel extends AbstractTableModel {

private ArrayList linhas = null;
private String[] colunas = {"Nome", "Endereço", "CNPJ", "Código"};
private boolean[] colsEdicao;

public FornecedorTableModel(ArrayList dados, boolean[] edicao) {
    setLinhas(dados);
    colsEdicao = edicao;
}

@Override
public boolean isCellEditable(int row, int col) {
    return colsEdicao[col];
}

/**
 * @return the linhas
 */
public ArrayList getLinhas() {
    return linhas;
}

/**
 * @param linhas the linhas to set
 */
public void setLinhas(ArrayList linhas) {
    this.linhas = linhas;
}

/**
 * @return the colunas
 */
public String[] getColunas() {
    return colunas;
}

/**
 * @param colunas the colunas to set
 */
public void setColunas(String[] colunas) {
    this.colunas = colunas;
}

public int getRowCount() {
    return getLinhas().size();
}

public int getColumnCount() {
    return 4;
}

@Override
public String getColumnName(int column) {
    return colunas[column];
}

public Object getValueAt(int rowIndex, int columnIndex) {
    FornecedorBean fornecedor = (FornecedorBean) linhas.get(rowIndex);
    switch (columnIndex) {
        case 0:
            return fornecedor.getNomeFornecedor();
        case 1:
            return fornecedor.getEndereco();
        case 2:
            return fornecedor.getCnpj();
        case 3:
            return fornecedor.getCodigo();
    }
    return null;
}

@Override
public void setValueAt(Object value, int row, int column) {
//        String[] linha = (String[]) getLinhas().get(row);

//        linha[column] = (String) value;

//        fireTableCellUpdated(row, column);

}

}

4 Respostas

P

Cara, eu tive esse mesmo problema em uma aplicação que fiz. Eu tive que sempre quando adicionava um campo na base de dados atualizar o JtableModel… Eu utilizava o Default model…

Tentei várias coisas, essa que funcionou.

Tente dar mais uma pesquisada, pois eu precisava entregar o trabalho da facul…

Marky.Vasconcelos

O seu TableModel podia ser responsavel por atualizar o o objeto no método setValueAt(int row, int col) depois voce pode pegar a lista atualizada com um getLinhas por exemplo que retorna aquele ArrayList.

Sobre remover.
Apenas delete uma linha do ArrayList depois lançe o evento fireTableDataChanged() pelo TableModel que sua JTable será atualizada.

ViniGodoy

Não use DefaultTableModel. Ok, você tinha pressa, e xunxou seu código usando um modelo de exemplo, mas jamais recomende o uso profissional disso. Aprenda o mais rápido possível a se livrar dele.

julinho, faça o método setValueAt atualizar os objetos do seu ArrayList. Depois, use o método getLInhas para pegar esse arraylist e persistir seus dados no banco.

Outra coisa, quando for postar código, por favor, siga essas dicas:
http://www.guj.com.br/posts/list/50115.java

Senão fica muito difícil de ler.

J

Não use DefaultTableModel. Ok, você tinha pressa, e xunxou seu código usando um modelo de exemplo, mas jamais recomende o uso profissional disso. Aprenda o mais rápido possível a se livrar dele.

julinho, faça o método setValueAt atualizar os objetos do seu ArrayList. Depois, use o método getLInhas para pegar esse arraylist e persistir seus dados no banco.

Outra coisa, quando for postar código, por favor, siga essas dicas:
http://www.guj.com.br/posts/list/50115.java

Senão fica muito difícil de ler.

Resolvido

Criado 20 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 4
Participantes 4