Mostrar resultado de uma pesquisa

7 respostas
C

Olá pessoal!

O que existe em java parecido com o dbgrid do delphi, ou seja como posso aprentar o resultado de uma pesquisa em java?

ex: select * from usuarios

apresentar em um grid os usuarios

utilizo a base firebird

Grato desde ja

7 Respostas

lina

Oi,

Seria uma JTable?

Tchauzin!

C

alguem poderia me dar um exemplo de como colocar a seguinte pesquisa no JTable

Select cpf,nome from clientes

grato :smiley:

T

opa essa fiquei curioso também pra saber, eu usava muito grid no delphi.

ManoJava

Bom dia

Eu utilizo o componente GridBorder do framework Wicket que é bem parecido com JTable.

Att.

fredsilva.sistemas
Infelismente a JTable do Java não é tão poderosa como o dbGrid do Delphi, pois ela não se vincula automaticamente com o banco, a não ser que se use um framework, como o OpenSwing.... Vc pode fazer o seguinte: :arrow: Crie um consulta adicionando o resultSet em uma List;
//Este método pertence a minha classe DepartamentoController
public List<Departamento> consultarDepartamento(Departamento departamento)throws SQLException{
        Conexao banco = new Conexao();
        List<Departamento> listaDep = new ArrayList<Departamento>();
        banco.abrirConexao();
        try{
            Statement statement = banco.conexao.createStatement();
            ResultSet resultSet;

            resultSet = statement.executeQuery("SELECT * FROM \"departamento\" WHERE \"dep_nome\" LIKE '"+departamento.getNome()+"%';");

            while(resultSet.next()){
                Departamento depEncotrado = new Departamento();
                depEncotrado.setId(resultSet.getInt("dep_id"));
                depEncotrado.setNome(resultSet.getString("dep_nome"));
                listaDep.add(depEncotrado);
            }
        }catch(SQLException ex){
            
        }
        return listaDep;
    }
:arrow: Crie um modelo para sua JTable. Pode usar o DefaultTableModel, não é o mais recomendado, mas no início ajuda (Veja depois sobre ObjectTableModel e AbstractTableModel - Estes são muito recomendados).
//Isto pode ser colocado dentro do construtor do Formulário
tabDepartamentos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tabDepartamentos.getColumnModel().getColumn(0).setPreferredWidth(50);
        tabDepartamentos.getColumnModel().getColumn(1).setPreferredWidth(450);
        modelo = (DefaultTableModel) tabDepartamentos.getModel();
        modelo.setNumRows(5);
:arrow: No momento da consulta (ao clicar no botão, ao digita no campo de texto)
List<Departamento> listaDep = new ArrayList<Departamento>();
        DepartamentoController departamento = new DepartamentoController();//Esta classe é a classe que contém a minha consulta
        departamento.getDepartamento().setNome(tfDepartamento.getText().toUpperCase());
        try {
            listaDep = departamento.consultarDepartamento(departamento.getDepartamento());
        } catch (SQLException ex) {
            Logger.getLogger(DepartamentosForm.class.getName()).log(Level.SEVERE, null, ex);
        }

        if (listaDep.size() > 0){
            this.modelo = (DefaultTableModel) tabDepartamentos.getModel();
            modelo.setNumRows(0);
            for(int i = 0; i < listaDep.size();i++){
                modelo.addRow(new Object[]{((Departamento) listaDep.get(i)).getId(),((Departamento) listaDep.get(i)).getNome()});//Adiciona o conteúdo da lista na JTable
            }
        }else{//Caso a consulta não retorne nada
            JOptionPane.showMessageDialog(rootPane, "Departamento não cadastrado!","Atenção", JOptionPane.WARNING_MESSAGE);            
        }
}
É apenas um exemplo, mas pode te ajudar bastante. Se não entender dá uma pesquisada no fórum sobre JTable. Tem até artigos sobre o assunto... Espero ter ajudado! T+
T

boa Fred, valew aí pela dica, deu pra dar uma clareada de como podemos fazer isso, eu não manjo nada de Framework, vou procurar explorar mais, pois acho que deve facilitar muito a vida.

C

Blz Fred

Vou estudar um pouco aqui e fazer com base no seu exemplo.

Grato

Criado 23 de abril de 2010
Ultima resposta 23 de abr. de 2010
Respostas 7
Participantes 5