Carregar banco no JTable

Olá pessoal!
Sou iniciante em java e estou tendo dificuldades para alimentar um JTable com informações do meu banco Postgresql.
O JTable simplesmente abre em branco… parece que faltou alguma coisa…algum detalhe…
na classe do banco eu coloquei até uns prints com o System.out.println para testar a funcionalidade do vetor… ele imprime perfeitamente as informações do banco…

o seguinte erro aparece:
“Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: javax.swing.JScrollPane cannot be cast to javax.swing.JPanel
at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:37)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)…”

Estou utilizando o Eclipse VE para a criação das telas.

se alguem quiser ver as classes posto aqui…

Obrigado… ABraços :slight_smile:

Ok!
Eu estou usando 4 classes.
1 - TelaPrincipal.java é a tela do menu onde ocorre o evento para abertura da tela com JTable
2 - Tela2.java é a tela que posue o JTable e que deveria puxar as informações do banco
3 - ControleTelaPrincipal é a classe de controle da TelaPrincipal na qual digo o que vai ser carregado na aberturar da Tela2.java
4 - DaoHardware é a classe de conexão ao banco postgresql

O evento está configurado no método "getListar() " para o JMenuItem “listar” na TelaPrincipal.

TelaPrincipal

package visao;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Dimension;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class TelaPrincipal {

	private JFrame tela = null;  //  @jve:decl-index=0:visual-constraint="64,47"
	private JPanel painelA = null;
	private JMenuBar barraMenu = null;
	private JMenu cadastro = null;
	private JMenuItem computador = null;
	private JMenuItem usuario = null;
	private JMenu hardware = null;
	private JMenuItem listar = null;
	private JMenu software = null;
	private JMenu updates = null;
	private JMenu relatorios = null;
	private JMenu sobre = null;

	public TelaPrincipal() {
		getTela();
		
	}

	/**
	 * This method initializes tela	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getTela() {
		if (tela == null) {
			tela = new JFrame();
			tela.setSize(new Dimension(441, 255));
			tela.setTitle("Controle TI - SMB");
			tela.setJMenuBar(getBarraMenu());
			tela.setVisible(true);
			tela.setContentPane(getPainelA());
		}
		return tela;
	}

	/**
	 * This method initializes painelA	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPainelA() {
		if (painelA == null) {
			painelA = new JPanel();
			painelA.setLayout(null);
		}
		return painelA;
	}

	/**
	 * This method initializes barraMenu	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getBarraMenu() {
		if (barraMenu == null) {
			barraMenu = new JMenuBar();
			barraMenu.add(getCadastro());
			barraMenu.add(getHardware());
			barraMenu.add(getSoftware());
			barraMenu.add(getUpdates());
			barraMenu.add(getRelatorios());
			barraMenu.add(getSobre());
		}
		return barraMenu;
	}

	/**
	 * This method initializes cadastro	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getCadastro() {
		if (cadastro == null) {
			cadastro = new JMenu("Cadastro");
			cadastro.add(getComputador());
			cadastro.add(getUsuario());
		}
		return cadastro;
	}

	/**
	 * This method initializes computador	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getComputador() {
		if (computador == null) {
			computador = new JMenuItem("Computador");
		}
		return computador;
	}

	/**
	 * This method initializes usuario	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getUsuario() {
		if (usuario == null) {
			usuario = new JMenuItem("Usuario");
		}
		return usuario;
	}

	/**
	 * This method initializes hardware	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getHardware() {
		if (hardware == null) {
			hardware = new JMenu("Hardware");
			hardware.add(getListar());
		}
		return hardware;
	}

	/**
	 * This method initializes listar	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getListar() {
		if (listar == null) {
			listar = new JMenuItem("Listar");
			listar.addActionListener(new controle.ControlePrincipal());
		}
		return listar;
	}

	/**
	 * This method initializes software	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getSoftware() {
		if (software == null) {
			software = new JMenu("Software");
		}
		return software;
	}

	/**
	 * This method initializes updates	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getUpdates() {
		if (updates == null) {
			updates = new JMenu("Updates");
		}
		return updates;
	}

	/**
	 * This method initializes relatorios	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getRelatorios() {
		if (relatorios == null) {
			relatorios = new JMenu("Relatorios");
		}
		return relatorios;
	}

	/**
	 * This method initializes sobre	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getSobre() {
		if (sobre == null) {
			sobre = new JMenu("Sobre");
		}
		return sobre;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TelaPrincipal tp=new TelaPrincipal();

	}

}

Tela2:

package visao;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Dimension;
import java.util.Vector;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import modelo.Computer;

import dao.DaoHardware;
import java.awt.Rectangle;

public class Tela2 {

	private JFrame tela = null;  //  @jve:decl-index=0:visual-constraint="62,45"
	private JPanel painelA = null;
	private JScrollPane js = null;
	private JTable tabela = null;

	public Tela2() {
		getTela();
		getTabela();
	}

	/**
	 * This method initializes tela	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	public JFrame getTela() {
		if (tela == null) {
			tela = new JFrame();
			tela.setSize(new Dimension(355, 245));
			tela.setContentPane(getPainelA());
			tela.setVisible(true);
		}
		return tela;
	}

	/**
	 * This method initializes painelA	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPainelA() {
		if (painelA == null) {
			painelA = new JPanel();
			painelA.setLayout(null);
			painelA.add(getJs(), null);
		}
		return painelA;
	}

	/**
	 * This method initializes js	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJs() {
		if (js == null) {
			js = new JScrollPane();
			js.setBounds(new Rectangle(0, 0, 347, 419));
			js.setViewportView(getTabela());
		}
		return js;
	}

	/**
	 * This method initializes tabela	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getTabela() {
		String []titulo={"cod","computer","ativo"};
		DefaultTableModel modelo=new DefaultTableModel(null,titulo);
		DaoHardware dao=new DaoHardware();
		Vector v=dao.consultaTodos();
		
		if (tabela == null){ 
		tabela=new JTable(modelo);
			for(int i=0;i<v.size();i++){
				Computer comp=(Computer)v.get(i);
				modelo.addRow(new String []{comp.getCod(),comp.getComputer(),comp.getAtivo()});
			}
				
		}
		return tabela;
	}

}

ControlePrincipal


package controle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.table.DefaultTableModel;

import modelo.Computer;

import dao.DaoHardware;
import dao.Tela;

import visao.Tela2;
import visao.TelaHardware;

public class ControlePrincipal implements ActionListener{
	
	public ControlePrincipal(){
		
	}	
		
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("Listar")){
						
			Tela2 tela=new Tela2();
			DaoHardware DAO=new DaoHardware();
			Vector v=DAO.consultaTodos();
			
			JPanel painell=(JPanel)tela.getTela().getContentPane().getComponent(0);
			JScrollPane js=(JScrollPane)painell.getComponent(0);
			
			JViewport jv=(JViewport)js.getComponent(0);
			JTable table_rio=(JTable)jv.getComponent(0);
			DefaultTableModel dtm=(DefaultTableModel)table_rio.getModel();
			
			for(int i=0;i<v.size();i++){
				Computer comp=(Computer)v.get(i);
				dtm.addRow(new String[]{comp.getCod(),comp.getComputer(),comp.getAtivo()});
			}
			
		}
	}
	
}
	

Dao

package dao;
import java.sql.*;
import java.util.Vector;

import modelo.Computer;

public class DaoHardware {
	
	private Statement sql;
	private Connection c;
	private ResultSet rs;
	
	public DaoHardware(){
		
		try    
	      {   
	           Class.forName("org.postgresql.Driver");   
	          
	          // Registrado o driver   
	          c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/controle_smb","postgres","teste");   
	  
	          Statement sql = c.createStatement();  
	          
	          rs=sql.executeQuery("select * from computer");

	          //Teste de consulta
	          Computer comp=new Computer();
	          while(rs.next()){
	        
	        	  comp.setCod(rs.getString("cod"));
	        	  comp.setComputer(rs.getString("computer"));
	        	  comp.setAtivo(rs.getString("ativo"));
	        	  System.out.println("Dao ok! x "+comp.getCod()+" x "+comp.getComputer()+" x "+comp.getAtivo());
	          }
	          
	      }
		 catch(SQLException e)   
	      {   
	         e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou   
	      } catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
	      
	    
	}
	
		public Vector consultaTodos(){
			Vector v=new Vector();
			String query="select * from computer";
			Computer comp=new Computer();
		
			try{
				ResultSet rs=sql.executeQuery(query);
				while(rs.next()){
								
					comp.setCod(rs.getString("cod"));
					comp.setComputer(rs.getString("computer"));
					comp.setAtivo(rs.getString("ativo"));
					
					v.add(comp);
					
				}
				return v;
			}
			catch(Exception E){
				
			}
			return v;
		}
		
		public Computer consulta(Computer comp){
			try{
				String query="select * from computer";
				ResultSet rs=sql.executeQuery(query);
				if(rs.next()){
								
					comp.setCod(rs.getString("cod"));
					comp.setComputer(rs.getString("computer"));
					comp.setAtivo(rs.getString("ativo"));
					
					return comp;
				}	
			}
			catch(Exception E){
				
			}
			return comp;
		}
	
}

Poste as classes e utilize o CODE