Mostrar dados na Jtable com preparedStatement[RESOLVIDO]

boa tarde pessoal.

segue meu metodo busca() da classe ConnUsuarios

[code]public ArrayList busca() throws SQLException { //aqui ta dando erro pedindo um RETURN… mas nao sei como fazer… pois ja tem um RETURN abaixo…
try{
Connect();
pst = con.prepareStatement(“SELECT NOME_USUARIOS,LOGIN_USUARIOS,SENHA_USUARIOS,NIVEL_DE_ACESSO FROM USUARIOS”);
pst.execute();
ResultSet rs = pst.executeQuery();
ArrayList use = new ArrayList();
while(rs.next()){
Usuarios usuario = new Usuarios();

           usuario.setNome(rs.getString("NOME_USUARIOS"));  
           System.out.println(rs.getString("NOME_USUARIOS"));
           usuario.setUsuario(rs.getString("LOGIN_USUARIOS"));  
           usuario.setSenha(rs.getString("SENHA_USUARIOS"));  
           usuario.setNivel(rs.getInt("NIVEL_DE_ACESSO"));   
             
           use.add(usuario);  
       }  
       Fecha();
       return use;
   }catch (Exception e){  
       System.out.println("Erro" + e);  
   }  

} [/code]

ou aqui abaixo onte tenho o metodo q chama o arraylist, da classe GerenciadorUsers… onde tenho um Jtable chamado Tableusers

[code] private void Dados() throws SQLException{

        ConnUsuarios user = new ConnUsuarios();
        ArrayList<Usuarios> u = user.busca(); 
        if(u.isEmpty()){
            JOptionPane.showMessageDialog(rootPane, "Lista vazia");
        }else{
            boolean[] edicao = {false, false, false, false};//define quais colunas vao ser editaveis
            String[] colunas = new String []{"NOME","LOGIN","SENHA","NIVEL"};
            TableModel mod = new model.TableModel(u, colunas, edicao) {
                Class[] types = new Class [] {
                    java.lang.String.class,//nome
                    java.lang.String.class,//login
                    java.lang.String.class,//senha
                    java.lang.Integer.class};//nivel
                    //java.lang.String.class};//bairro
                @Override
                public Class<?> getColumnClass(int column) {return types[column];}
            };
            TableUsers.setModel(mod);
            sorter = new TableRowSorter<TableModel>(mod);
            TableUsers.setRowSorter(sorter);
            TableUsers.setRowHeight(25);
            TableUsers.getColumnModel().getColumn(0).setMinWidth(200);
            TableUsers.getColumnModel().getColumn(1).setMinWidth(85);
            TableUsers.getColumnModel().getColumn(1).setMaxWidth(85);
            TableUsers.getColumnModel().getColumn(2).setMinWidth(200);
            //TableContribuinte.setFocusable(true);
        }
}[/code]

valeu

oq vc nao ta conseguindo fazer? ql é a sua duvida? em que parte esta tendo problema?

agora mudei umas coisas…

ta aparecendo esse erro:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: db.Usuarios cannot be cast to [Ljava.lang.Object; at model.TableModel.getValueAt(TableModel.java:68)

meu metodo Busca() na classe ConnUsuarios ta assim

[code]public ArrayList Busca() throws SQLException {
Connect();
pst = con.prepareStatement(“SELECT NOME_USUARIOS,LOGIN_USUARIOS,SENHA_USUARIOS,NIVEL_DE_ACESSO FROM USUARIOS”);
Usuarios usuario = new Usuarios();
ResultSet rs = pst.executeQuery();

   ArrayList<Usuarios>  contatos = new ArrayList<Usuarios>();  
   while (rs.next()) {  
           usuario.setNome(rs.getString("NOME_USUARIOS"));  
           //System.out.println(rs.getString("NOME_USUARIOS"));
           usuario.setUsuario(rs.getString("LOGIN_USUARIOS"));  
           usuario.setSenha(rs.getString("SENHA_USUARIOS"));  
           usuario.setNivel(rs.getInt("NIVEL_DE_ACESSO")); 

       contatos.add(usuario);  
         
int a =0;  
System.out.println(contatos.get(a++).getNome()); // aqui retorna cada nome gravado no banco  
   }  
   return contatos;  

} [/code]

meu metodo para popular o jtable ta assim

[code] private void Dados() throws SQLException{

    ConnUsuarios u = new ConnUsuarios();
    ArrayList<Usuarios> user = u.Busca();  

    boolean[] edicao = {false, false, false, false};//define quais colunas vao ser editaveis
    String[] colunas = new String []{"NOME","LOGIN","SENHA","NIVEL"};
    TableModel mod = new model.TableModel(user, colunas, edicao) {
        Class[] types = new Class [] {
            java.lang.String.class,//nome
            java.lang.String.class,//login
            java.lang.String.class,//senha
            java.lang.Integer.class};//nivel
        @Override
        public Class<?> getColumnClass(int column) {return types[column];}
    };     
    TableUsers.setModel(mod);
    sorter = new TableRowSorter<TableModel>(mod);
    
    for (int cont= 0, i =0; i<user.size();++i, ++cont){  
       
    user.get(i);
           //Aqui você adiciona os campos do banco de dados no jTable.  

          // o que coloco aqui para popular o jtable????????????????????

    }[/code]

ahh no meu table model ta assim a linha q ta dando o erro

[code] public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String []
Object[] linha = (Object[]) getLinhas().get(rowIndex); // essa é a linha q ta dando erro
// // Retorna o objeto que esta na coluna
return linha[columnIndex];

}[/code]

Alguém para me dar uma ajuda??

[code] public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String []
Object[] linha = (Object[]) getLinhas().get(rowIndex); // nessa Linha ta dando erro!!!
//return linhas.get(rowIndex).getClass();
// // Retorna o objeto que esta na coluna
return linha[columnIndex];

}[/code]

PESSOAL esse cód q tá dando erro!!!

o erro COMPLETO é esse:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: db.Usuarios cannot be cast to [Ljava.lang.Object; at model.TableModel.getValueAt(TableModel.java:68) at javax.swing.JTable.getValueAt(JTable.java:2720) at javax.swing.JTable.prepareRenderer(JTable.java:5718) at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114) at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016) at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) at javax.swing.JComponent.paintComponent(JComponent.java:778) at javax.swing.JComponent.paint(JComponent.java:1054) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JViewport.paint(JViewport.java:725) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295) at javax.swing.RepaintManager.paint(RepaintManager.java:1206) at javax.swing.JComponent._paintImmediately(JComponent.java:5169) at javax.swing.JComponent.paintImmediately(JComponent.java:4980) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677) at javax.swing.RepaintManager.access$700(RepaintManager.java:59) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:675) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) at java.awt.Dialog.show(Dialog.java:1072) at java.awt.Component.show(Component.java:1650) at java.awt.Component.setVisible(Component.java:1602) at java.awt.Window.setVisible(Window.java:1013) at java.awt.Dialog.setVisible(Dialog.java:1003) at grafica.JPrincipal.jMenuItem12ActionPerformed(JPrincipal.java:234) at grafica.JPrincipal.access$000(JPrincipal.java:14) at grafica.JPrincipal$1.actionPerformed(JPrincipal.java:170) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: db.Usuarios cannot be cast to [Ljava.lang.Object; at model.TableModel.getValueAt(TableModel.java:68) at javax.swing.JTable.getValueAt(JTable.java:2720) at javax.swing.JTable.prepareRenderer(JTable.java:5718) at javax.swing.JTable.getToolTipText(JTable.java:3394) at javax.swing.ToolTipManager$insideTimerAction.actionPerformed(ToolTipManager.java:629) at javax.swing.Timer.fireActionPerformed(Timer.java:312) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:675) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) at java.awt.Dialog.show(Dialog.java:1072) at java.awt.Component.show(Component.java:1650) at java.awt.Component.setVisible(Component.java:1602) at java.awt.Window.setVisible(Window.java:1013) at java.awt.Dialog.setVisible(Dialog.java:1003) at grafica.JPrincipal.jMenuItem12ActionPerformed(JPrincipal.java:234) at grafica.JPrincipal.access$000(JPrincipal.java:14) at grafica.JPrincipal$1.actionPerformed(JPrincipal.java:170) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) BUILD SUCCESSFUL (total time: 11 seconds)

alguém da uma LUZ…

Após mto bater cabeça pensando e pesquisando na NET e no fórum…

consegui…!!!

segue abaixo para qm tiver o mesmo problema!

UsersTableModel

[code]package model;

import db.Usuarios;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
*

  • @author vielmond
    */
    public class UsersTableModel extends AbstractTableModel {
    private static final int COL_NOME = 0;
    private static final int COL_LOGIN = 1;
    private static final int COL_SENHA = 2;
    private static final int COL_NIVEL = 3;

    private String[] colunas = null;

    private List valores;

    //Esse é um construtor, que recebe a nossa lista
    public UsersTableModel(List valores, String[] colunas, boolean[] edicao) {
    this.valores = new ArrayList(valores);
    setColunas(colunas);
    colsEdicao = edicao;
    }

    public int getRowCount() {
    //Quantas linhas tem sua tabela? Uma para cada item da lista.
    return valores.size();
    }

//Alterar o conteúdo do modelo, tem que setar também o setValueAt
private boolean[] colsEdicao;

@Override
public boolean isCellEditable(int row, int col) {
    return colsEdicao[col];

// return false;
}

public String[] getColunas() {
    return colunas;
}

public void setColunas(String[] strings) {
    colunas = strings;
}

public int getColumnCount() {  
    //Quantas colunas tem a tabela? 
    return getColunas().length;
}  

@Override
public String getColumnName(int col) {
    return colunas[col];
} 

public Object getValueAt(int row, int column) {  
    //Precisamos retornar o valor da coluna column e da linha row.  
    Usuarios titulo = valores.get(row);  
    if (column == COL_NOME) return titulo.getNome();  
    else if (column == COL_LOGIN) return titulo.getUsuario();  
    else if (column == COL_SENHA) return titulo.getSenha(); 
    else if (column == COL_NIVEL) return titulo.getNivel();
    return ""; //Nunca deve ocorrer  
}  

public void setValueAt(Object aValue, int rowIndex, int columnIndex) {  
    Usuarios titulo = valores.get(rowIndex);  
    //Vamos alterar o valor da coluna columnIndex na linha rowIndex com o valor aValue passado no parâmetro.  
    //Note que vc poderia alterar 2 campos ao invés de um só.  
    if (columnIndex== COL_NOME) titulo.setNome(aValue.toString());  
    else if (columnIndex== COL_LOGIN) titulo.setUsuario(aValue.toString());  
    else if (columnIndex== COL_SENHA) titulo.setSenha(aValue.toString()); 
    else if (columnIndex== COL_NIVEL) titulo.setNivel((Integer)aValue); 
}  

public Class<?> getColumnClass(int columnIndex) {  
    //Qual a classe das nossas colunas? Como estamos exibindo texto, é string.  
    return String.class;  
}  
   
//Já que esse tableModel é de livros, vamos fazer um get que retorne um livro inteiro.  
//Isso elimina a necessidade de chamar o getValueAt() nas telas.   
public Usuarios get(int row) {  
    return valores.get(row);  
}  

}
[/code]

metodo busca()

public ArrayList<Usuarios> Busca(){ try{ Connect(); pst = con.prepareStatement("SELECT NOME_USUARIOS,LOGIN_USUARIOS,SENHA_USUARIOS,NIVEL_DE_ACESSO FROM USUARIOS"); ResultSet rs = pst.executeQuery(); user = new ArrayList<Usuarios>(); while (rs.next()) { Usuarios usuario = new Usuarios(); usuario.setNome(rs.getString("NOME_USUARIOS")); usuario.setUsuario(rs.getString("LOGIN_USUARIOS")); usuario.setSenha(rs.getString("SENHA_USUARIOS")); usuario.setNivel(rs.getInt("NIVEL_DE_ACESSO")); user.add(usuario); //int a =0; //System.out.println(user.get(a++).getNome()); } Fecha(); }catch(SQLException e){ JOptionPane.showMessageDialog(null, "erro"); } return user; }

metodo que preenche a jtable

private void Dados() throws SQLException{ ConnUsuarios u = new ConnUsuarios(); ArrayList<Usuarios> user = u.Busca(); if(user.isEmpty()){ JOptionPane.showMessageDialog(rootPane, "Lista vazia"); }else{ boolean[] edicao = {false, false, false, false}; String[] colunas = new String []{"NOME","LOGIN","SENHA","NIVEL"}; UsersTableModel mod = new model.UsersTableModel(user, colunas, edicao) { Class[] types = new Class [] { java.lang.String.class,//nome java.lang.String.class,//login java.lang.String.class,//senha java.lang.Integer.class};//nivel @Override public Class<?> getColumnClass(int column) {return types[column];} }; TableUsers.setModel(mod); sorter = new TableRowSorter<TableModel>(mod); for (int cont= 0, i =0; i<user.size();++i, ++cont){ user.get(i); } } }

VALEU!!!