Tenho uma tabela no banco com várias colunas, mas nao necessariamente todas sao sempre preenchidas. Logo, vários campos ficam com ‘null’. No meu programa, tenho uma tela onde o usuário pode consultar esses dados. O problema é que como há vários campos ‘null’ no banco, aparecerem vários campos com ‘0’ no programa (JTable).
Alguém tem ideia de como fazer pra mostrar na JTable apenas as colunas com valores diferente de ‘0’? Porque se eu dou um select com “where x != 0”, por exemplo, toda a linha é ignorada, ainda que tenha 1 ou 2 colunas com dados diferentes de 0. Honestamente acredito que isso nem seja possível, mas nao custa perguntar aqui pra vcs que conhecem muito.
Como alternativa, a ideia que eu tive foi simplesmente setar o texto do campo pra " " se o valor for 0, já seria menos pior que aparecendo 0 em todo canto. Mas nao peguei o jeito de como mudar isso, já que os dados vem do banco.
Esse é o método onde eu trago os dados do banco:
private void preencherTabela(String Sql) {
ArrayList dados = new ArrayList(); // Linhas
String[] colunas = new String [] {"Data", "Temperatura Inicial", "Temperatura Alterada", "Resultado Inicial", "Resultado Final", "Analista"};
conex.conectar();
conex.executaSql(Sql);
try{
conex.rs.first();
do{
dados.add(new Object[] {conex.rs.getTimestamp("data"), conex.rs.getDouble("temp_inicio"), conex.rs.getDouble("temp_fim"), conex.rs.getDouble("result_inicio"), conex.rs.getDouble("result_fim"), conex.rs.getString("analista")});
} while(conex.rs.next());
} catch (SQLException ex){
JOptionPane.showMessageDialog(null, "Erro ao preencher tabela \n " +ex.getMessage());
}
ModAlteraTabela modelo = new ModAlteraTabela(dados, colunas);
jTableRelAlteracoes.setModel(modelo);
E dentro de um botao eu chamo esse método e configuro o tamanho das colunas:
private void jButtonBuscarActionPerformed(java.awt.event.ActionEvent evt) {
java.sql.Date dataDesde = new java.sql.Date(jDateChooserDesde.getDate().getTime());
java.sql.Date dataAte = new java.sql.Date(jDateChooserAte.getDate().getTime());
preencherTabela("SELECT * FROM dados_provas WHERE data BETWEEN '" +dataDesde+"' AND '" +dataAte+ "' ORDER BY data desc");
jTableRelAlteracoes.getColumnModel().getColumn(0).setMinWidth(120);
jTableRelAlteracoes.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(120);
Alguém sabe como posso tentar omitir os valores 0? Ou simplesmente criar uma condicao pra que se o valor for 0, mostrar um espaco vazio (" ")? To perdidaco…
Assim sai a JTable no programa, quero me livrar desse monte de 0…