ResultSetTableModel

3 respostas
A

Pessoal sou iniciante em Java e estou com problemas para trabalhar com a JTable, não consigo utilizar o modelo usando ResultSetTableModel ou DefaultTableModel, da o seguinte erro: ResultSetTableModel cannot be resolved to a type.
ja tentei vários códigos, esse é o código do livro core java, ja testei códigos do livro do Deitel tbm, estou fazendo tudo certinho, o que pode estar dando errado?

help me please!

import java.sql.*;
import javax.swing.*;
import javax.swing.table.AbstractTableModel.*;


public class ResultSetTableDemo extends JFrame {
        private JTable grid_demo;
        private JScrollPane scrollPane;
        public ResultSetTableDemo() {
                this.setTitle("Tabela com banco de dados");
                this.setSize(300, 200);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                grid_demo = new JTable();
                scrollPane = new JScrollPane(grid_demo);   
                this.getContentPane().add(scrollPane, "Center");
                this.pack();
        }
        public ResultSet consultar(String sql) {
                ResultSet resultado = null;
                try {
                        //Carregar o driver JDBC para PostGresql
                        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
                        //Criando um conexao com schema contatos 
                        Connection c =
                        DriverManager.getConnection(
                        "jdbc:postgresql:java",
                        "postgres",
                        "");
                        //execurtar consulta
                        Statement consulta = c.createStatement();
                        resultado = consulta.executeQuery(sql);
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return resultado;
        }
        
        public static void main(String[] args) {
        	    ResultSetTableModel modelo = null;
                ResultSet rs = null;
                Connection con = null;
                Statement stmt = null;
                ResultSetTableDemo frame = new ResultSetTableDemo();
                String query =
                "SELECT nome, cidade.descricao as cidade,"
                + "       bairro.descricao as bairro, uf"
                + " FROM  pessoa, bairro, cidade"
                + " WHERE pessoa.cod_cidade = cidade.cod_cidade"
                + " AND   pessoa.cod_bairro = bairro.cod_bairro";
                rs = frame.consultar(query);    
                modelo = new ResultSetTableModel(rs);
                frame.grid_demo.setModel(modelo);
                TableColumn col;
                
                col = frame.grid_demo.getColumnModel().getColumn(1);
                col.setPreferredWidth(100); 
                col = frame.grid_demo.getColumnModel().getColumn(2);
                col.setPreferredWidth(1000); 
                frame.setVisible(true);
        }
}

3 Respostas

Sombriks

Alex_Go, esse tal de ResultSetTableModel não existe na API. Certamente é alguma implementação invocada feita algum capítulo antes e vc deixou passar.

Eu recomendo dar uma olhada em como conseguir um ResultSet e em como conseguir um TableModel, de forma que vc consiga criar pra vc um ResultSetTableModel e resolver assim a sa vida. Se não me engano os dois são interfaces e vc tem de implementar; embora, claro, existem algumas implementações dentro da API, eu recomendo criar uma, e assim ter um objeto com mais opções que seja interessante pra vc.

olha aí umas referências do q vc precisa:

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/AbstractTableModel.html

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/TableModel.html

destes estou trabalhando intensamente com o TableModel e eu te garanto que com menos de 60 linhas vc resolve seu problema de criar, deletar, atualizar e ainda por cima mostrar os dados só implementando seu próprio TableModel e extendendo AbstractTableModel pra cuidar da parte de eventos. Muuito cômodo. E com relação a ResultSet, vc puxa um desses da conexão e a minha sugestão é utilizar ele por fora, um “facade” qualquer serve e assim oferecer atendimento especial pra quantos TableModel vc Implementar!

Mais dúvidas, faça mais perguntas :D, que se eu ao menos achar que sei tento ajudar.

té+++.

Y

Certamente.

P.S.: a saber, o cabeçalho do arquivo de exemplo é public class ResultSetTableModel extends AbstractTableModel

A

Valeu pela atenção pessoal, vou dar uma olhada nesses links, e dar uma revisada no livro também.

Valeu!

Criado 26 de dezembro de 2006
Ultima resposta 26 de dez. de 2006
Respostas 3
Participantes 3