Galera, eu tenho uma tabela e quero que ela atualize após a inserção de um novo dado em tempo de execução, como que faço isso?
Minha Classe TabelaModelo:
package br.com.tabela;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
/**
*
*/
public class TabelaModelo extends AbstractTableModel {
private ArrayList linhas = null;
private String [] colunas = null;
//private final boolean selecione = 0;
public TabelaModelo (ArrayList lin, String [] coluna){
setLinhas(lin);
setColunas(coluna);
}
public ArrayList getLinhas(){
return linhas;
}
public void setLinhas(ArrayList dados){
linhas = dados;
}
public String[] getColunas(){
return colunas;
}
public void setColunas(String[] nomes){
colunas = nomes;
}
public int getColumnCount(){
return colunas.length;
}
public int getRowCount(){
return linhas.size();
}
public String getColumnName(int numCol){
return colunas[numCol];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public void remover(int linha) {
linhas.remove(linha);
fireTableRowsDeleted(linha, linha);
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Object getValueAt(int numLin, int numCol){
Object[] linha = (Object[])getLinhas().get(numLin);
return linha[numCol];
}
}
Minha tabela que funciona em uma tela:
public void preencherTabela() {
String sql = "SELECT id_dest, motorista_dest, carro_dest, placa_dest, nome_dest, motivo_dest, date_format(data_dest, '%d/%m/%Y %H:%i:%s') as d_i, date_format(data_final, '%d/%m/%Y %H:%i:%s') as d_f, statu FROM destino WHERE motorista_dest = '" + txtPesquisarNome.getText() + "' order by id_dest desc";
ArrayList dados = new ArrayList();
String[] Colunas = new String[]{"ID", "Motorista", "Carro", "Placa", "Destino", "Motivo", "Data/Hora S.", "Data/Hora C.", "STATUS"}; //"Selecione"
try {
this.connection = new ConnectionFactory().getConnection();
PreparedStatement pst = connection.prepareStatement(sql);
rs = pst.executeQuery();
rs.first();
do {
dados.add(new Object[]{rs.getInt("id_dest"), rs.getString("motorista_dest"), rs.getString("carro_dest"), rs.getString("placa_dest"), rs.getString("nome_dest"), rs.getString("motivo_dest"), rs.getString("d_i"), rs.getString("d_f"), rs.getString("statu")});
} while (rs.next());
} catch (Exception e) {
// JOptionPane.showMessageDialog(null,"*ATENCÂO*! Realize ao menos uma Reserva!");
}
//metodo para configurar o layout da tabela
TabelaModelo modelo = new TabelaModelo(dados, Colunas);
tabelaReservas.setModel(modelo);
tabelaReservas.getColumnModel().getColumn(0).setPreferredWidth(30);
tabelaReservas.getColumnModel().getColumn(0).setResizable(false);
tabelaReservas.getColumnModel().getColumn(0).setHeaderValue("ID");
tabelaReservas.getColumnModel().getColumn(1).setPreferredWidth(130);
tabelaReservas.getColumnModel().getColumn(1).setResizable(false);
tabelaReservas.getColumnModel().getColumn(1).setHeaderValue("Motorista");
tabelaReservas.getColumnModel().getColumn(2).setPreferredWidth(80);
tabelaReservas.getColumnModel().getColumn(2).setResizable(false);
tabelaReservas.getColumnModel().getColumn(2).setHeaderValue("Carro");
tabelaReservas.getColumnModel().getColumn(3).setPreferredWidth(90);
tabelaReservas.getColumnModel().getColumn(3).setResizable(false);
tabelaReservas.getColumnModel().getColumn(3).setHeaderValue("Placa");
tabelaReservas.getColumnModel().getColumn(4).setPreferredWidth(100);
tabelaReservas.getColumnModel().getColumn(4).setResizable(false);
tabelaReservas.getColumnModel().getColumn(4).setHeaderValue("Destino");
tabelaReservas.getColumnModel().getColumn(5).setPreferredWidth(100);
tabelaReservas.getColumnModel().getColumn(5).setResizable(false);
tabelaReservas.getColumnModel().getColumn(5).setHeaderValue("Motivo");
tabelaReservas.getColumnModel().getColumn(6).setPreferredWidth(130);
tabelaReservas.getColumnModel().getColumn(6).setResizable(false);
tabelaReservas.getColumnModel().getColumn(6).setHeaderValue("Data e Hora S.");
tabelaReservas.getColumnModel().getColumn(7).setPreferredWidth(130);
tabelaReservas.getColumnModel().getColumn(7).setResizable(false);
tabelaReservas.getColumnModel().getColumn(7).setHeaderValue("Data e Hora C.");
tabelaReservas.getColumnModel().getColumn(8).setPreferredWidth(80);
tabelaReservas.getColumnModel().getColumn(8).setResizable(false);
tabelaReservas.getColumnModel().getColumn(8).setHeaderValue("STATUS");
tabelaReservas.getTableHeader().setReorderingAllowed(false);
tabelaReservas.setCellEditor(null);
tabelaReservas.getTableHeader().setReorderingAllowed(false);
tabelaReservas.setAutoResizeMode(tabelaReservas.AUTO_RESIZE_OFF);
tabelaReservas.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
}