[Resolvido] enviar valor de jcombobox para uma variavel do tipo Sala

Andei pesquisando…mas não encontrei nada que ajudasse…

Ate ai eu consegui… o problema é que variavel que recebe é do tipo Sala.

Criei uma classe sala , e na classe turma coloquei um atributo do tipo sala…
Na hora de cadastrar a turma…todos os registros de sala do banco vai para o jcombobox…
e na hora de pegar os valores ele pede valor do tipo sala e o que sai do Jcombobox é string ou inteiro… HELP!
minha classe sala

[code]package br.com.model;

/**
*

  • @author Narinha
    */
    public class Sala {
    private int idSala;
    private String descSala;

    public int getIdSala() {
    return idSala;
    }

    public void setIdSala(int idSala) {
    this.idSala = idSala;
    }

    public String getDescSala() {
    return descSala;
    }

    public void setDescSala(String descSala) {
    this.descSala = descSala;
    }

}
[/code]

Classe turma

[code]package br.com.model;

/**
*

  • @author Narinha
    */
    public class Turma {
    private int idTurma;
    private String descTurma;
    private Sala descSala;

    public int getIdTurma() {
    return idTurma;
    }

    public void setIdTurma(int idTurma) {
    this.idTurma = idTurma;
    }

    public String getDescTurma() {
    return descTurma;
    }

    public void setDescTurma(String descTurma) {
    this.descTurma = descTurma;
    }

    public Sala getDescSala() {
    return descSala;
    }

    public void setDescSala(Sala descSala) {
    this.descSala = descSala;
    }

}
[/code]

metodo cadastrar do JFrame CadTurma

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String desc = jTDescricao.getText();
        Sala idsala = (Sala) jComboBox1.getSelectedItem();
        
        //continuar daqui..

        if (jTDescricao.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Campo em Branco, preencha!!!");
        } else {
            try {
                Turma turma = new Turma();
                turma.setDescTurma(desc);
                turma.setDescSala(idsala);

                turmaDAO.save(turma);


                jTDescricao.setText("");

                JOptionPane.showMessageDialog(null, " Cadastro realizado com sucesso");
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Falha ao cadastrar");
            }
        }
    }                                        

e o metodo salvar da classe TurmaDAO

[code] public void save(Turma tm) {
try {
stm = conecta.conecta().createStatement();
String insert = null;

        String descricao = tm.getDescTurma();
        Sala sala = tm.getDescSala();

        insert = "insert into turma (descturma,descsala) values ('" + descricao + "','"+ sala+"')";
        stm.executeQuery(insert);
    } catch (SQLException se) {
        se.printStackTrace();
    }

}[/code]

Ah o problema ta dando no metodo cadastar no JFrame CadTurma na linha 4

Ocorre esse erro:

run: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to br.com.model.Sala at br.com.view.CadTurma.jButton1ActionPerformed(CadTurma.java:138) at br.com.view.CadTurma.access$000(CadTurma.java:16) at br.com.view.CadTurma$1.actionPerformed(CadTurma.java:63) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) CONSTRUÍDO COM SUCESSO (tempo total: 26 segundos)

na minha turmaDAO alem da save tem o metodo para pegar todos os registros da tabela sala que está no banco

[code]
public List carregar(){
try {
stm = conecta.conecta().createStatement();
String pesq;
pesq = “select (descsala) from sala”;
rs = stm.executeQuery(pesq);
while (rs.next()) {
Sala sala = new Sala();
sala.setDescSala(rs.getString(“descsala”));
salas.add(sala);
}

    } catch (Exception e) {
        e.printStackTrace();
    }
    
    return salas;
} [/code]

e qdo inicia o frame de CadTurma
tem o metodo


    public void atualizaCombo() {
        TurmaDAO dAO = new TurmaDAO();
        for (Sala sala : new TurmaDAO().carregar()) {
            jComboBox1.addItem(sala.getDescSala());
        }
    }

resolvido

foi feita a seguinte alteração
nesse metodo

public void atualizaCombo() { TurmaDAO dAO = new TurmaDAO(); for (Sala sala : new TurmaDAO().carregar()) { jComboBox1.addItem(sala); } }

e acrescentado o esse metodo na classe Sala

@Override public String toString() { return this.getDescSala(); }

Agradeço
Lucas Simão por me ajudar…
Obrigada…