Olá galera!!!
Estou precisando da ajuda do pessoal aqu ido fórum mais uma vez!!
Bom galera… o problema é o seguinte…
Possuo duas combo box em uma tela de venda… em um comboBox pego do BD os tipo de produtos cadastrados… por exemplo: CD, DVD, Camisa, Blusa Feminina …
Na outra combo que estou com dificuldades… tipo… .estou querendo fazer o seguinte… de acordo com o que o usuário selecionar na como Tipo eu vou e seto a outra combo com os produtos cadastrados daquele tipo específico… Por exemplo: O usuário seleciona o tipo de produto DVD… na outra combo eu mostro todas as opções de DVDs que ele tem para venda…entenderam???
Ou então seleciona Blusa na combo tipo… ae na outra combo eu mostro todas as blusas que ele tem no estoque…
Isso tudo já está arrumado no BD… fiz um m´petodo na DAO que está buscando exatamente como estou pedindo… segue o código: [code]
public Vector consultarTipo(Mercadoria m)
{
try
{
PreparedStatement sql=DAOFactoryPSQL.getConnection().prepareStatement("select * from mercadoria where tipo like ?");
sql.setString(1, m.getTipo()+"%");
ResultSet r= sql.executeQuery();
Vector v= new Vector();
while(r.next())
{
Mercadoria mercadoria= new Mercadoria();
mercadoria.setDescricao(r.getString("descricao"));
v.add(mercadoria);
}
return v;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Erro durante a consulta das descrições dos produtos: "+e,"ERRO",JOptionPane.ERROR_MESSAGE);
return null;
}
}[/code]
Mas o que está acontecendo é que ele seta o outro combo com o primeiro tipo de produto… por exemplo… O primeiro tipo de produto que tem na como é DVD… então ele lista todos os DVDs… .só que quando seleciono outra opção de tipo de produto não sei como vou fazer para atualizar a comoBox com os dados!!!
Segue meu código!!: [code]
package visao;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import modelo.Mercadoria;
import modelo.Tipo;
import dao.DAOFactory;
import dao.DAOMercadoria;
import dao.DAOTipo;
public class TelaVenda extends JFrame {
private JButton btnIncluirItem,btnRealizarVenda,btnCancelar,btnLimpar;
private JPanel pnl1,pnl2,pnl3,pnl4;
private JLabel lblTipoProduto,lblDescricaoProduto;
private JComboBox cmbTipo,cmbDescricao;
private JTextField txtPrecoVenda;
private JTable jTable;
private JScrollPane scrollTabela;
static String guardaTipo,guardaTipo2;
static boolean escolha = true;
Container c;
public TelaVenda (){
super("Realizar Venda");
//set dos containers e dos gerenciadores principair de layout
c = getContentPane();
c.setLayout(new BorderLayout());
pnl1 = new JPanel();
pnl1.setLayout(new FlowLayout(0));
//carrega os tipos de produtos existentes no Banco de Dados
cmbTipo = new JComboBox(encheComboBox());
//a variável guardaTipo está coletando o tipo que o usuário selecionou na tela
//depois é usada no método encheComboBoxDescricao()
guardaTipo = (String) cmbTipo.getSelectedItem();
cmbDescricao = new JComboBox(encheComboBoxDescricao());
pnl1.add(cmbTipo);
pnl1.add(cmbDescricao);
// adiciona painéis ao container
c.add(pnl1,BorderLayout.NORTH);
}// fim do construtor
public String[] encheComboBox(){
DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
DAOTipo dao = df.getDAOTipo();
Vector <Tipo> v;
v = new Vector(30,10);
v=dao.consultarTodos();
int tam = v.size();
String[] dadosCombo = new String[tam];
try {
//String resultDados[][] = dao.getDados();
for (int i=0; i<tam;i++){
Tipo tipo = v.get(i);
//int e = v.size();
dadosCombo[i] = tipo.getTipo();
}
}
catch (Exception e){
JOptionPane.showMessageDialog(null,"Erro durante o preenchimento dos tipos de produto :"+e,"ERRO",JOptionPane.ERROR_MESSAGE);
}
return dadosCombo;
}// fim do método encheComboBox()
public String [] encheComboBoxDescricao(){
DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
DAOMercadoria dao = df.getDAOMercadoria();
Vector <Mercadoria> v;
v = new Vector(30,10);
Mercadoria tipo = new Mercadoria();
tipo.setTipo(guardaTipo);
v = dao.consultarTipo(tipo);
int tam = v.size();
String dadosCombo[] = new String[tam];
escolha = false;
for (int i=0;i<tam;i++){
Mercadoria mercadoria = v.get(i);
dadosCombo[i]=mercadoria.getDescricao();
}
return dadosCombo;
}
public void setOuvint (ActionListener controle){
cmbDescricao.addActionListener(controle);
}
public static String getGuardaTipo() {
return guardaTipo;
}
public static void setGuardaTipo(String guardaTipo) {
TelaVenda.guardaTipo = guardaTipo;
}
public static String getGuardaTipo2() {
return guardaTipo2;
}
public static void setGuardaTipo2(String guardaTipo2) {
TelaVenda.guardaTipo2 = guardaTipo2;
}
public static boolean isEscolha() {
return escolha;
}
public static void setEscolha(boolean escolha) {
TelaVenda.escolha = escolha;
}
}
[/code]
Pleeeeeeeeease galera… me ajuda ae a atualizar essa combo!!!
Um grande abraço a todos!!
Valeu pela ajuda!!!