Everton. 0 Denunciar post Postado Julho 19, 2011 Ola pessoal, criei um DefaultTableModel (sim, eu sei, deveria ter feito meu próprio modelo, masss enfim...) Estou tentando inserir um JOptionPane de tabela vazia, mas estou com problemas na condição. //Metodo private void VerificaTabela(){ for(int i = 0; i <tableTabela.getRowCount(); i++){ if(tableTabela.getValueAt(i,0).toString().equals("")){ JOptionPane.showMessageDialog(null, "Erro...", "Não existe dependentes com esse cnpj", JOptionPane.ERROR_MESSAGE); } } } // TableModel Consulta_Dependente_CRUD dao = new Consulta_Dependente_CRUD(); List<Consulta_Dependente> lista = (List<Consulta_Dependente>) dao.listaEmpresa(cnpj); DefaultTableModel modelo = (DefaultTableModel) jtableTabela.getModel(); modelo.setRowCount(0); for (Consulta_Dependente e : lista) { modelo.addRow(new Object[]{ e.getRazao(), e.getCCnpj(), e.getDNome(), e.getDCpf(), e.getDRg(), e.getDTelComercial(), e.getDEmail(), }); VerificaTabela(); } } co.Fechar_Conexao(); } catch (SQLException exc) { JOptionPane.showMessageDialog(null, "Erro: " + exc.getMessage(), "Consulta de proposta", JOptionPane.ERROR_MESSAGE); } Compartilhar este post Link para o post Compartilhar em outros sites
EduFranzoni 0 Denunciar post Postado Julho 26, 2011 Você preenche essa tabela com o que? se for com um ResultSet de uma consulta ao banco de dados é só testar if(rs.next) //retornou algo else //nao retornou nada. se for com um arraylist, testa o tamanho do arraylist. arraylist.size() == 0? --- Pelo que entendi isso pode ser feito, desculpe se entendi errado. Att. Compartilhar este post Link para o post Compartilhar em outros sites
Everton. 0 Denunciar post Postado Julho 30, 2011 Preencho ela com um resultset. - Vou testar essa condição. Compartilhar este post Link para o post Compartilhar em outros sites
Discorpio 1 Denunciar post Postado Setembro 16, 2011 Bom dia a todos. Na verdade, voce pode também verificar a tabela primeiramente com o método rowCount(), que está presente no Model, desta forma: private void VerificaTabela() { Integer rows = tableTabela.getModel().getRowCount(); if (rows < 0) { JOptionPane.showMessageDialog(null,"Aviso...", "Não existe dependentes com esse cnpj", JOptionPane.WARNING_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Aviso...", "Existem "+rows.toString()+" dependenstes com esse cnpj", JOptionPane.WARNING_MESSAGE); } Outra dica que te dou, é não use DefaultTableModel, pois esse tipo de model, engessa o seu JTable, a eventos e métodos padrões e não permiti que voce padronize o seu JTable de acordo com suas necessidades, cria uma classe que herde (extenda) AbstractTableModel, e dentro dessa classe, voce pode inclusive configurar os nomes das colunas, o tipo de dado que é retornado em cada célula, e o que é melhor, voce pode passar para esta classe, os dados que alimenta o seu JTable, enfim, lhe permiti inclusive, usar um único objeto JTable, para várias tabelas utilizando AbstractTableModel. Vou te passar um exemplo que fiz para uma aplicação minha. import Bean.AgendaCompBean; import java.util.ArrayList; import java.util.Iterator; import javax.swing.table.AbstractTableModel; public class DataGridComp extends AbstractTableModel { private ArrayList dataset; private static final String[] col = {"ID","Hora","Compromisso","Nome","Assunto","Local","Desmarcou"}; public DataGridComp(AgendaCompBean bean){ dataset = new ArrayList(); Iterator I = bean.getRegistros().iterator(); while (I.hasNext()){ AgendaCompBean dbean = (AgendaCompBean)I.next(); Object[] row = { dbean.getId(), dbean.getHora(), dbean.getCompromisso(), dbean.getNome(), dbean.getAssunto(), dbean.getLocalizacao(), dbean.getDesmarcou() }; dataset.add(row); } fireTableStructureChanged(); } @Override public int getRowCount() { return dataset.size(); } @Override public int getColumnCount() { return col.length; } @Override public Object getValueAt(int rowIndex, int columnIndex) { Object[] row = (Object[])dataset.get(rowIndex); return row[columnIndex]; } @Override public void setValueAt(Object value, int row, int col) { Object[] dado = (Object[])dataset.get(row); dado[col] = value; fireTableCellUpdated(row, col); } @Override public boolean isCellEditable(int rowIndex, int columnIndex){ if (columnIndex==0 || columnIndex==1){ return false; } else { return true; } } @Override public Class getColumnClass(int column){ if (column == 6) { return Boolean.class; } else { return String.class; } } public ArrayList getDataSet(){ return dataset; } @Override public String getColumnName(int column){ return col[column]; } public Object[] getRow(int row) { return (Object[])dataset.get(row); } public void removeRow(int row) { dataset.remove(row); fireTableDataChanged(); } public void addRow(Object[] row) { dataset.add(row); fireTableDataChanged(); } public void addEmptyRow(){ Object[] row = {0,"","","","","",false}; dataset.add(row); fireTableDataChanged(); } } // Na hora de passar os dados para a tabela, passo desta forma: ...... AgendaCompBean bean = new AgendaCompBean(); bean.setData(new Date("12/09/2011"); bean.setNome("Francisco Dorneles Silva"); bean..... MeuJTable.setModel(new DataGridComp(bean); ..... Um abraço Compartilhar este post Link para o post Compartilhar em outros sites