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

3 respostas
N

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
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;
    }
    
    
    
}

Classe turma

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;
    }
    
}

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

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();
        }

    }

3 Respostas

N

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)

N

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

public List<Sala> 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;
    }
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());
        }
    }
N

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…

Criado 8 de fevereiro de 2013
Ultima resposta 8 de fev. de 2013
Respostas 3
Participantes 1