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 
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