JTable erro no .setNumRows(0) e .addRow?

7 respostas
S

ola pessoal, tenho um metodo para preencher uma JTable…
porem o .setNumRows(0) e o .addRow estao dando erro, por que sera???

public void preencher_jtable()
    {
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(10);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(10);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(10);
        
        DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
        modelo.setNumRows(0);
         
        try
        {          
            while (obj_access.resultset.next()){
                modelo.addRow(new Object[]{obj_access.resultset.getString("ContratoCod"),
                         obj_access.resultset.getString("Contrato"),
                         obj_access.resultset.getString("Seller"),
                         obj_access.resultset.getString("Buyer")
                         });
                         obj_access.resultset.first();
                          
            }  
            }  
         catch (SQLException erro){
             JOptionPane.showMessageDialog(null,"Erro ao listar no JTable "+erro);
        }  
    }

aparece o seguinte erro:

C:\Users\Naoki\Documents\NetBeansProjects\Seiyo Menka\src\Formularios\editorContratos.java:439: cannot find symbol

symbol  : method setNumRows(int)

location: class groovy.model.DefaultTableModel

modelo.setNumRows(0);

C:\Users\Naoki\Documents\NetBeansProjects\Seiyo Menka\src\Formularios\editorContratos.java:444: cannot find symbol
symbol : method addRow(java.lang.Object[])
location: class groovy.model.DefaultTableModel
modelo.addRow(new Object[]{obj_access.resultset.getString(“ContratoCod”),

7 Respostas

E

cara… tua IDE é o netBeans?
tente mapear teu projeto no eclipse, localizar as bibliotecas e compilar novamente…
use o netBeans somente para desenho de telas e então utilize o eclipse para o restante do código…

M

erico_kl:
cara… tua IDE é o netBeans?
tente mapear teu projeto no eclipse, localizar as bibliotecas e compilar novamente…
use o netBeans somente para desenho de telas e então utilize o eclipse para o restante do código…

Usar 2 IDEs? Parece meio complicado, não? Até porque ambas tem capacidade e recursos suficientes para os dois trabalhos (tanto o design das telas, quanto a parte lógica da aplicação).

E

eu uso as 2 IDEs e não tenho problemas…
netBenas: uso somente para desenhar as telas… ele nao tem mobilidade para mexer no código gerado, alterar algum componente etc…
eclipse: uso para implementar o que o netBeans bloqueia, ou seja, os códigos gerados das telas propriamente ditas… sei que existe plugin visual pro eclipse mas sempre usei as 2 IDEs juntas e não tive problemas…

M

De qualquer forma, gosto não se discute (apesar de eu estar muito bem com o Eclipse + Jigloo :slight_smile: ).

Bom, não sei se posso te ajudar, mas sei que o método setNumRows está obsoleto. Veja a documentação:

Use setRowCount em seu lugar.

S

Consegui mais ou menos agora…
mas continua aparecendo um erro assim:

java.lang.ArrayIndexOutOfBoundsException: 0 >=0

O que significa isso??

D

tambem to com o mesmo problema, como vc consegui resolve-lo?
na minha aplicação em uma tela estou usando o mesmo codigo e não tah dando esse erro, mais em outra tela tah dando o erro:

D:\Danilo Costa\JAVA\Escola\src\forms\TelaAluno.java:385: cannot find symbol
symbol : method setNumRows(int)
location: class groovy.model.DefaultTableModel
tabelaFuncionario.setNumRows(0);
D:\Danilo Costa\JAVA\Escola\src\forms\TelaAluno.java:390: cannot find symbol
symbol : method addRow(java.lang.Object[])
location: class groovy.model.DefaultTableModel

meu codigo pra preencher a tabela é o seguinte:
public void preencherTabela(String nomeAluno){

        ResultSet Rsp;
        Rsp = aluno.pesquisaAlunoNome(nomeAluno);
        DefaultTableModel tabelaAluno = (DefaultTableModel)jTableAluno.getModel();
        tabelaAluno.setNumRows(0);
        
        try
        {
            while(Rsp.next()){

            tabelaAluno.addRow(new Object[]{Rsp.getInt("codaluno"),Rsp.getString("nomealuno")});

            }
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, e);
        }
    }

desde jah agradeço quem puder me ajudar

abraçu

V

Não usem o DefaultTableModel.

Ele realmente é difícil de usar e gera muitos problemas. No lugar, crie seu próprio TableModel. Nos links da minha assinatura há diversos tópicos explicando como. Mas se você não entender e tiver dúvida, abra um tópico novo que teremos prazer a te ensinar… do jeito certo.

Criado 16 de fevereiro de 2009
Ultima resposta 23 de out. de 2010
Respostas 7
Participantes 5