Método do jComboBox [RESOLVIDO]

12 respostas
Suellen_Susu

Olá pessoal!!!

Tenho um jComboBox, que possui opções de escolha, q eu msma digitei para o componente.

Só q ai esta minha dúvida: qndo o usuário escolhe uma opção da lista, e clica em um botao, como faço para minha variavel string, pegar o q esta escrito nessa opção, e jogar pro banco? q método seria o ideal para q pegue o q esta selecionado?

bjoss e obrigada desde jah… ;]

12 Respostas

Eric_Yuzo

String selecionado = comboBox.getSelectedItem().toString();Acho que isso deve servir.

hfk
// Assim voce pega o valor do combobox

String vItemSelecionado = seuCombobox.getSelectedIten().toString;

Agora salvar este valor no banco de dados, voce vai prescisar de um metodo mais ou menos assim,

public String salvar(String SuaString)
    {
       Connection con = ConexaoDAO.getConexao();
       String sql = "insert into sua_tablea (seuCampo) values ("+pSuaString+"')  ";

       try{
           Statement stm = con.createStatement();
           stm.executeQuery(sql);
           stm.close();
           return "ok";
       }catch(Exception e){         
                return e.getMessage();            
       }
   }

É so passar o valor que vc pegar por parametro, estude sobre persistencia no padrão ‘Singleton’ e ‘DAO’.

Suellen_Susu

Olha, eu fiz isso aki, mas ñ rodou certo ñ… :frowning:

tring foto = Image.getSelectedFile().getCanonicalPath().replace("\", "/"); String escolhe = jComboBox1.getSelectedItem().toString(); String sql = "UPDATE facil SET " + "imagem = '"+ foto +"'" + "tipoimagem = '"+ escolhe +"'" + "WHERE id = '"+ jTextField7.getText() +"'"; int r = BD.runSQL(sql);

o q vcs acham q seja?

Eric_Yuzo

Tem que separar os campos com vírgula.

"imagem = '"+ foto +"', " + "tipoimagem = '"+ escolhe +"'"

Lucas_Abbatepaolo

Qual a menssagem de erro exibida…assim saberemos onde esta o erro…

Suellen_Susu

Eric Yuzo:
Tem que separar os campos com vírgula.

"imagem = '"+ foto +"', " + "tipoimagem = '"+ escolhe +"'"

Nossa, era isso msmo q tava dando errado… Mto obrigada Eric… ;D

agora ficou assim:

String foto = Image.getSelectedFile().getCanonicalPath().replace("\", "/"); String escolhe = jComboBox1.getSelectedItem().toString(); String sql = "UPDATE facil SET " + "imagem = '"+ foto +"', " + "tipoimagem = '"+ escolhe +"'" + "WHERE id = '"+ jTextField7.getText() +"'"; int r = BD.runSQL(sql); new certosom(); JOptionPane.showMessageDialog(null, "Você escolheu a imagem a ser exibida na pergunta!","Inserir Imagem:",JOptionPane.INFORMATION_MESSAGE); jLabel14.setText(BD.resultSet.getString("tipoimagem"));

Só q só tem um detalhe: qria q logo após essa mensagem JOptionPane, ele jah exibisse no meu jLabel14, ql o tipo q imagem o usuário colocou na pergunta, q no caso seria a ultima linha ai (penso eu q seja assim)…

Porém, ele só mostra isso se eu fechar o jFrame e executar novamente…

o q vcs achm q seja? minha ultima linha ñ é adequada ao q preciso?

Eric_Yuzo

jLabel14.setText(BD.resultSet.getString("tipoimagem"));Tem que ver se este resultSet não está pegando as informações de antes de fazer o update.

Não poderia colocar diretamente o valor escolhido ao invés de olhar no banco?

jLabel14.setText(escolhe);
Suellen_Susu

[quote=Eric Yuzo]jLabel14.setText(BD.resultSet.getString("tipoimagem"));Tem que ver se este resultSet não está pegando as informações de antes de fazer o update.

Não poderia colocar diretamente o valor escolhido ao invés de olhar no banco?

jLabel14.setText(escolhe);

Deu certo isso, só q com um porém…

pq ele mostrou na hora apenas… pq se eu for em outro registro, pelos botoes d navegação q criei, e depois voltar no registro q inseri a imagem, ele novamente ñ mostra ql imagem inseri… :?

e eu precisava q ele fosse como descrevi: msmo indo nos botoes d navegação, ao voltar no registro, ele tem q me informar da imagem existente nele…

Eric_Yuzo

Acho que depois de executar o update teria que fazer uma nova consulta para atualizar o resultSet.

Lucas_Abbatepaolo

tenta colocar este comando depois q vc realiza o update

BD.resultSet.refreshRow();

Att.,

Suellen_Susu

Lucas Abbatepaolo:
tenta colocar este comando depois q vc realiza o update

BD.resultSet.refreshRow();

Att.,

antes do int r = BD.runSQL(sql); ou depois?

Suellen_Susu

Consegui Lucas, é depois…

Deu td certinho agora… ;D

Obrigada a todos q me auxuliaram…

bjosss… ;]

Criado 6 de outubro de 2010
Ultima resposta 7 de out. de 2010
Respostas 12
Participantes 4