Problemas ao invocar método!

6 respostas
hacebe

Bom dia pessoal... estou invocando um método de outra classe!

esse método nao é estático e atualiza os valores dos componentes jTable dos respectivos forms.

ja fiz em meu projeto uma chamada de métodos e obtive sucesso, porem repetindo os mesmos passos ele retorna um exception nulo

aqui vai o código do método:

public void atualizaInformacoes(){
        
        try{
            
            DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
            DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
            DefaultTableCellRenderer direita = new DefaultTableCellRenderer();
            
            jTable1.removeAll();
            
            esquerda.setHorizontalAlignment(SwingConstants.LEFT);
            centralizado.setHorizontalAlignment(SwingConstants.CENTER);
            direita.setHorizontalAlignment(SwingConstants.RIGHT);
            DefaultTableModel modelo = new DefaultTableModel(){
                @Override
                public boolean isCellEditable (int rowIndex, int mColIndex){
                    return false;
                }
            };
            modelo.addColumn("Categorias", new Object[]{});
            modelo.addColumn("Valor Total", new Object[]{});
            
            Connection conn = ConnDB.getConnection();
            Statement stmt = conn.createStatement();
            
            ResultSet rs = stmt.executeQuery("SELECT TD_CODIGO_CATEGORIA,TD_CATEGORIA,sum(TD_VALOR) FROM `TAB_DESPESAS` WHERE `TD_MES_ANO` LIKE '4/2008' group by TD_CATEGORIA");
            while (rs.next()){
                modelo.addRow(new Object[]{rs.getString(2), rs.getFloat(3)});
                
                lista.add(rs.getString(2));
            }

            jTable1.setModel(modelo);
            jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);

            jTable1.getColumnModel().getColumn(0).setCellRenderer(esquerda);
            jTable1.getColumnModel().getColumn(1).setCellRenderer(direita);
            jTable1.getColumnModel().getColumn(0).setPreferredWidth(350);
            jTable1.getColumnModel().getColumn(1).setPreferredWidth(100);
            //jTable1.repaint();
            doLayout();
            
            rs = stmt.executeQuery("SELECT * FROM `TAB_USUARIOS` WHERE TU_CODIGO = '" + GeomapView.codigoUsuario + "'");
            rs.next();
            jLabel2.setText("Usuário: " + rs.getString("TU_NOME"));
            stmt.close();
        }
        catch(Exception e){
            System.out.println("erro " + e.getMessage());
        }
    }

Aqui vai o código da classe que chama esse método (separado por partes):

@Action
    public void Insere() {
    [...]
    try{
          [...]
          principal.atualizaInformacoes();
          [...]
    }catch(Exception e){

         System.out.println(e.getMessage());
    }

   [...]

    private PrincipalSecretaria principal;

    public PrincipalSecretaria getPrincipal() {
        return principal;
    }

    public void setPrincipal(PrincipalSecretaria principal) {
        this.principal = principal;
    }

nesse mesmo projeto tenho algo igual a isso e esta funcionando!
quando chamo esse metodo ai, ele retorna no log "null"

O que pode ser?

Obrigado!

6 Respostas

GustavoLaguna

Se você postar o erro facilita no debug.

o jTable1 foi instanciado?

thegoergen

Tem o StackTrace do Erro??

hacebe

Foi sim… tanto é que existe outro método que é chamado em outra classe… fiz tudo direitinho e funciona… esse ai que é bem parecido ele nao funciona
o JTable1 foi instanciado sim

Na verdade não mostra erro…

ele passa pelo try, mas vai pro catch… mas ao invés de mostrar o erro ele simplesmente escreve “NULL” no output e nao executa o método!

Obrigado!

victorwss

Você sabia que é importante fechar as Connections, ResultSets e PreparedStatements corretamente quando terminar de trabalhar com eles? Senão ele vai abrir mais e mais e mais statements, resultsets e connections até que uma hora o seu banco de dados vai explodir em milhares de SQLExceptions.

GustavoLaguna

usa o debug da IDE e vai passo a passo para tentar encontrar onde está ocorrendo a exceção.

hacebe

Amigo… sei disso… e até fiz uma condicao para ver se ja foi criada… ta funcionando beleza!

E ja resolvi o problema aqui pessoal!

Obrigado pela ajuda!
até + :lol:

Criado 18 de abril de 2008
Ultima resposta 18 de abr. de 2008
Respostas 6
Participantes 4