Como carregar os dados no JCombobox usando hibernate?

3 respostas
ryouta

Classe que tem meu combobox

package views;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.AbstractAction;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import modelo.*;
import hibernate.*;
import java.util.*; 
import java.sql.*;  
public class telaCadBairro extends JFrame implements ActionListener {
	int navega = 0; // CONEXAO BANCO para saber em que botao de navegação foi clicado e mostrar o erro correto.
	JLabel lblNomeBairro, lblUFBairro, lblNomeCidade;
	JTextField  txtNomeBairro;
	JComboBox cbxUFBairro, cbxCidadeBairro;
	JButton btnSalvar, btnSair;
	bairro bairro = new bairro();
	Dao dao = new Dao();
private final telaCadBairro gambiarra = this;


	public telaCadBairro() {
		super("Cadastro de Bairros");
		int w = this.getToolkit().getDefaultToolkit().getScreenSize().width;
		int h = this.getToolkit().getDefaultToolkit().getScreenSize().height;
		int x = (w - 643) / 2;
		int y = (h - 360) / 2;
		this.setBounds(x, y, 643, 360);
		this.setResizable(false);
		this.setLayout(new BorderLayout());

		JLabel telaCadBairro = new JLabel(new ImageIcon("src/imagens/telaCadBairro.jpg"));
		telaCadBairro.setBounds(0, 0, 643, 463);
		telaCadBairro.setVisible(true);

JDesktopPane deskBairro = new JDesktopPane();

	   // Início LABEL
		lblUFBairro = new JLabel("Escolha o estado:");
		lblUFBairro.setBounds(495, 185, 120, 20);
		deskBairro.add(lblUFBairro);

		lblNomeCidade = new JLabel("Escolha a cidade:");
		lblNomeCidade.setBounds(25, 185, 100, 20);
		deskBairro.add(lblNomeCidade);

		lblNomeBairro = new JLabel("Nome do Bairro:");
		lblNomeBairro.setBounds(25, 125, 100, 20);
		deskBairro.add(lblNomeBairro);
	   // Fim LABEL
		   // Início JCOMBOBOX
			  
		
		cbxCidadeBairro = new JComboBox();
			  cbxCidadeBairro.setBounds(25, 205, 454, 30);
			  cbxCidadeBairro.addItem(dao.listarObjeto("select nome_cidade from tbl_cidade")); // nessa linha ele lista ! mais tudo em 1 só linha
		  deskBairro.add(cbxCidadeBairro);
		  
	
 
		String estados[] = {"AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", 
							"MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI",
							"RR", "RO", "RJ", "RN", "RS", "SC", "SP", "SE", "TO" };
		cbxUFBairro = new JComboBox(estados);
		cbxUFBairro.setBounds(495, 205, 105, 30);
		deskBairro.add(cbxUFBairro);
	   // Fim JCOMBOBOX

	   // Início TEXTFIELD
		txtNomeBairro = new JTextField();
		txtNomeBairro.setFont(new Font("Tahoma", Font.PLAIN, 18));
		txtNomeBairro.requestFocus();
		txtNomeBairro.setBounds(25, 145, 577, 30);
		deskBairro.add(txtNomeBairro);
		deskBairro.repaint();
	   // Fim TEXTFIELD

	   // Início BOTÕES
		btnSalvar = new JButton();
		btnSalvar.setBounds(202, 264, 101, 40);
		btnSalvar.setFocusable(false);
		btnSalvar.setToolTipText("Salvar Alterações");
		btnSalvar.setIcon(new ImageIcon("src/imagens/btnSalvar.png"));
		btnSalvar.setBorderPainted(false); // TIRANDO A BORDA
		btnSalvar.setContentAreaFilled(false); // TIRANDO O BACKGROUND
		btnSalvar.addActionListener(this);
		deskBairro.add(btnSalvar);

		btnSair = new JButton();
		btnSair.setBounds(312, 265,101, 38);
		btnSair.setFocusable(false);
		btnSair.setToolTipText("Cancelar Alterações");
		btnSair.setIcon(new ImageIcon("src/imagens/btnCancelar.png"));
		btnSair.setBorderPainted(false); // TIRANDO A BORDA
		btnSair.setContentAreaFilled(false); // TIRANDO O BACKGROUND
		btnSair.addActionListener(this);
		deskBairro.add(btnSair);
	   // Fim TEXTFIELD

		deskBairro.add(telaCadBairro);

		this.add(deskBairro);

        this.getRootPane().getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "fecharJanelaInterna");
        
        this.getRootPane().getActionMap().put("fecharJanelaInterna", new AbstractAction() {
			public void actionPerformed(ActionEvent arg0) {
				gambiarra.setVisible(false);
			}
		});

		txtNomeBairro.requestFocus(true);

		
		this.setVisible(true);
	
			
	}



// INÍCIO DAS FUNÇÕES DOS BOTÕES
	public void actionPerformed(ActionEvent e) {

// ----------------------------------------------------------------------------------------------------------------------------------------------
		if (e.getSource() == btnSalvar)// BOTÃO SALVAR
		{
			bairro.setNome_bairro(txtNomeBairro.getText());
			bairro.setCidade_bairro(cbxCidadeBairro.getSelectedItem());
			bairro.setEstado_bairro(cbxUFBairro.getSelectedItem());
		Dao dao = new Dao();
		dao.inserirObjeto(bairro);
		
		}

// ----------------------------------------------------------------------------------------------------------------------------------------------
		if (e.getSource() == btnSair)// BOTÃO SAIR
		{
			this.setVisible(false);
			}

//----------------------------------------------------------------------------------------------------------------------------------------------
	}// FIM AÇÃO DOS BOTÕES
	

	
}// FIM PROGRAMA

minha Dao do hibernate

package hibernate;



import java.util.List;

import javax.swing.JOptionPane;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;




public class Dao {

	
	public Dao(){
		
	}
	
	public <T> boolean inserirObjeto(T objeto) {

		Session sessao = HibernateUtility.getSession();
		Transaction transacao = sessao.beginTransaction();

		try {
			sessao.save(objeto);
			transacao.commit();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null,"Tem campos em Branco ! Porfavor Preencha corretamente");
			return false;
		} finally {
			sessao.close();
		}
		
	}

	public <T> boolean atualizarObjeto(T objeto) {

		Session sessao = HibernateUtility.getSession();
		Transaction transacao = sessao.beginTransaction();

		try {
			sessao.update(objeto);
			transacao.commit();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro");
			return false;
		} finally {
			sessao.close();
		}
		
	}

	public <T> boolean deletarObjeto(T objeto) {

		Session sessao = HibernateUtility.getSession();
		Transaction transacao = sessao.beginTransaction();

		try {
			sessao.delete(objeto);
			transacao.commit();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro");
			return false;
		} finally {
			sessao.close();
		}
		
	}

	public List<?> listarObjeto(String query) {
		
		Session sessao = HibernateUtility.getSession();
		Transaction tx = sessao.beginTransaction();
		
		try {
			Query select = sessao.createQuery(query);
			List<?> list = select.list();
			tx.commit();
			return list;
		} catch (Exception e) {
			e.printStackTrace();
			
			return null;
		} finally {
			sessao.close();
		}
		
	}
	
}

como faço ?

3 Respostas

mauricioadl

eh que o addItem do comboBox adiciona um item de cada vez, vc precisa fazer um laço for e adicionar um a um.

for(Object item : dao.listarObjeto("select nome_cidade from tbl_cidade")){
cbxCidadeBairro.addItem(item);
}
mateusviccari

não esqueca do @Override toString(){}
na sua classe de entidade que irá retornar a representação visual da sua classe.

ryouta

conssegui mais foi de outro jeitoo!!!
mais obrigado.

Agora to com outra duvida…

Tenho uma classe A que tem um botão e quando eu apertar esse botão eu quero que ele de um refresh na classe B.

como falo isso ?

Criado 22 de março de 2012
Ultima resposta 23 de mar. de 2012
Respostas 3
Participantes 3