Isso mesmo Marky, consegui fazer algo do genero, e está resolvendo, de maneira simples.
Estou com dois problemas:
1) As colunas não estão assumindo o nome correto,
2) Alguns campos na tela precisam ser preenchidos conforme é clicado sobre as linhas da tabela.
Pode me ajudar?
Vou colocar o código que criei.
Classe AbstractTableModel
public final class jTable extends AbstractTableModel {
private ArrayList linhas = null;
String[] colunas = null;
public jTable(ArrayList dados, String[] coluna) {
setLinhas(dados);
setColunas(coluna);
}
public String[] getColunas() {
return colunas;
}
public ArrayList getLinhas() {
return linhas;
}
public void setColunas(String[] strings) {
colunas = strings;
}
public void setLinhas(ArrayList list) {
linhas = list;
}
public int getRowCount() {
return getLinhas().size();
}
public int getColumnCount() {
return getColunas().length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
String[] linha = (String[]) getLinhas().get(rowIndex);
return linha[columnIndex];
}
}
Tela
private void populaTabela(ResultSet rs) {
String[] colunas = new String[]{"Código", "Cliente", "Status", "Data Abertura", "Motivo Cancelamento", "Usuário"};
ArrayList dados = new ArrayList();
String status = null;
try {
while (rs.next()) {
int statOco = rs.getInt("oco.i_sta_oco");
switch (statOco) {
case 1:
status = ("Aberto");
break;
case 2:
status = ("Aberto / Desenvolvimento");
break;
case 3:
status = ("Fechado");
break;
case 4:
status = ("Cancelado");
break;
}
dados.add(new String[]{
rs.getString("oco.i_cod_oco"),
rs.getString("cli.c_nom_cli"),
(status),
rs.getString("oco.d_dat_cad"),
rs.getString("oco.c_mot_can"),
rs.getString("oco.i_cod_usu")});
}
} catch (SQLException ex) {
Logger.getLogger(jConsultaCliente.class.getName()).log(Level.SEVERE, null, ex);
}
jTable modelo = new jTable(dados, colunas);
jTable1.setModel(modelo);
}