Problemas com Jtable

3 respostas
T

Boa tarde pessoal, estou tendo problemas para passar valores para tabela
minha classe esta aqui embaixo, o erro seria do tipo vazio, eu jah nao sei mais
oq tentar fazer para converter esse problema se puderem me ajudar fico grato

log erro:

24/10/2008 12:59:12 Veiculo.Tabelaconsulta add

SEVERE: null

java.sql.SQLException: Invalid handle

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7130)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)

at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)

at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)

at Veiculo.VeiculoDAO.inseriano(VeiculoDAO.java:160)

at Veiculo.Tabelaconsulta.add(Tabelaconsulta.java:34)

at Veiculo.Tabelaconsulta.formWindowOpened(Tabelaconsulta.java:115)

at Veiculo.Tabelaconsulta.access$000(Tabelaconsulta.java:13)

at Veiculo.Tabelaconsulta$1.windowOpened(Tabelaconsulta.java:66)

at java.awt.Window.processWindowEvent(Window.java:1200)

at javax.swing.JFrame.processWindowEvent(JFrame.java:266)

at java.awt.Window.processEvent(Window.java:1161)

at java.awt.Component.dispatchEventImpl(Component.java:3984)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Window.dispatchEventImpl(Window.java:1791)

at java.awt.Component.dispatchEvent(Component.java:3819)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
package Veiculo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;


public class Tabelaconsulta extends javax.swing.JFrame {
    
    /** Creates new form Tabelaconsulta */
    public Tabelaconsulta() {
        initComponents();
    }
    private ArrayList<VeiculoDAO> lstveiculo;
    public void add()
    {
        try{
                  
        VeiculoDAO ap=new VeiculoDAO();int b=0;
        
        DefaultTableModel dtm=new DefaultTableModel();
      
       
       
        
        
        for(int i=0;i<ap.size();i++){
        
             Object[] dados = new Object[]{ap.inseriPlaca().get(i),ap.inseriano().get(i),ap.inserichassi().get(i),
       ap.insericod_regiao(),ap.inserimarca().get(i),ap.inserimodelo().get(i),ap.inseriqtd_maxima().get(i),ap.inseristatus().get(i),ap.inseritipo_mercadoria().get(i)};
            dtm.addRow(dados);
            b++;
        }
        jTable1.setModel(dtm);
                            
    }
       
    
    catch(Exception ex)
    {
        Logger.getLogger(VeiculoDAO.class.getName()).log(Level.SEVERE, null, ex);
    }     
      //JTable  jTable1=new JTable().setModel(a);
         }

   public void inserirtabela(VeiculoDAO veiculo) throws Exception
   {
       
   }
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        button1 = new java.awt.Button();
        button2 = new java.awt.Button();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Placa", "Chassi", "Marca", "Modelo", "Ano", "Status", "Tipo Mercadoria", "Quantidade Maxima", "Codigo da regiao"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        button1.setLabel("Alterar");

        button2.setLabel("Excluir");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 624, Short.MAX_VALUE)
                    .add(layout.createSequentialGroup()
                        .add(button1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(button2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 88, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(button2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(button1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  

        add();
        
    }                                 
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tabelaconsulta().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private java.awt.Button button1;
    private java.awt.Button button2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration                   
    
}

3 Respostas

Izahhbelinha
Bom, vc ta tendo problemas em colocar os itens ou em manipular eles na JTable? Uso uma solução bem pratica quando é uma JTable que é criar um ModeloTabela, é uma classe simples mas que facilita na hora de usar a Jtable.
public class ModeloTabelaCarga extends DefaultTableModel{
    private List<MotoristaVeiculo> lista;
    
    public int getColumnCount () { //quantas colunas tem a tabela
        return 2;
    }
    
    public String getColumnName (int coluna) {
        if (coluna == 0) return "Motorista";
        if (coluna == 1) return "Placa";

        return "";
    } 
    public int getRowCount () {
        if (lista != null) return lista.size ();
        return 0;
    }
    
    public Object getValueAt (int linha, int col) {
        if (lista != null && lista.size () > linha) {
           MotoristaVeiculo m= lista.get(linha);
           if (col == 0) return m.getNome ();
           if (col == 1) return m.getPlaca ();
           
        }
        return null;
    }
    
    public List<MotoristaVeiculo> getLista () {
        return lista;
    }
    public void setLista (List<MotoristaVeiculo> lista) {
        this.lista = lista;
    }
}

Ai na classe da tabela eu coloco isso

ModeloTabelaCarga2 mtcg2 = new ModeloTabelaCarga2();

    public buscaCarga(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        mtcg2 = new ModeloTabelaCarga2();
        List<Carga> li = CargaDAO.getNumCarga();
        mtcg2.setLista(li);                //desse jeito vão aparecer os valores na tabela qdo vc abrir a janela
        jTable1.setModel(mtcg2);
        jTable1.updateUI();
    }
Esse é um trecho do meu tcc, Agora vc q vê se isso ajuda no seu problema. ate+
T

ajuda bastante sim, vou tentar criar essa classe ai posto se deu certo obrigado e boa sorte no teu tcc.

obs: meu intuito é passar dados para tabela, manipular eles eu consigo, soh nao consigo inserir os dados em suas respectivas colunas.

Izahhbelinha

ahh sim… isso vai ajudar sim, esse modeloTabela serve bem pra isso

=D

Criado 25 de outubro de 2008
Ultima resposta 25 de out. de 2008
Respostas 3
Participantes 2