How to validate jcomboBox before saving

0

I have the following problem, I am trying to validate these jcombobox, I want that if the user does not select a jcombobox item from the movie, a message appears: "Select Movie", if already the client, a message appears: Select the Client "and if it is the employee's, also a message of this type will appear, I need this validation before saving, how would I do that?

Method that I call to populate jcomboBox:

    protected void preenche_filmes() {
    java.sql.Connection conn = null;
    java.sql.PreparedStatement pstm = null;
    ResultSet rs = null;
    List<String> resultados = new ArrayList();
    //importe a classe java.util.List

    try {

        conn = ConnectDB.conexaoDB();
        pstm = conn.prepareStatement(SELECT_FILME);         
        rs = pstm.executeQuery();
        resultados.add("Selecione o Filme:");
        while(rs.next()){

            resultados.add(rs.getString("codigo_filme")+"-"+ rs.getString("titulo"));

        }

        cbFilmes = new JComboBox(resultados.toArray());
    } catch(SQLException e) {
        JOptionPane.showMessageDialog(null, "Ocorreu um erro "+ e.getMessage()+ e.getErrorCode()+ e.getSQLState()+e.getLocalizedMessage());
        e.printStackTrace();
    }



}

Method that saves to the bank:

protected void salvar(){



    String selecao_filmes = cbFilmes.getSelectedItem().toString();
    String[] campos_filmes = selecao_filmes.replace(" ","").split("-"); // suponho que esteja separado por -
    System.out.println(campos_filmes[0]); // deve pegar o código
   int  codigo_filme  = Integer.parseInt(campos_filmes[0]);//Integer.parseInt(campos_filmes[0]);

  String selecao_funcionario = cbFuncionario.getSelectedItem().toString();
    String[] campos_funcionarios = selecao_funcionario.replace(" ", "").split("-");
    System.out.println(campos_funcionarios[0]);
int codigo_funcionario = Integer.parseInt(campos_funcionarios[0]);
    String campos_clientes[];


    String selecao_cliente = cbClientes.getSelectedItem().toString();
     campos_clientes = selecao_cliente.replace(" ", "").split("-");
    System.out.println(campos_clientes[0]);
   int codigo_cliente  = Integer.parseInt(campos_clientes[0]);

    String data_locacao = dt_locacao.getText();
    String data_devolucao = dt_devolucao.getText();
 if(data_devolucao.equals("  /  /    ")){
        JOptionPane.showMessageDialog(null, "O campo Data de devolução é Obrigatório!");
        }else if (data_locacao.equals("  /  /    ")){
    JOptionPane.showMessageDialog(null, "O campo Data de locação é Obrigatório!");

        }else{

    Locacao locacao = new Locacao();
    locacao.setCodigo_cliente(codigo_cliente);
    locacao.setCodigo_funcionario(codigo_funcionario);
    locacao.setCodigo_filme(codigo_filme);
    locacao.setDt_locacao(data_locacao);
    locacao.setDt_devolucao(data_devolucao);

    control.Locacao manutencao = new control.Locacao();
    if(codigo_editar==0){
        manutencao.inserir(locacao);


    }else{
        manutencao.alterar(locacao);
    }
    limparInformacoes();

    tabbedPane.setSelectedIndex(1);
        }
}
    
asked by anonymous 26.11.2016 / 13:03

1 answer

3

Following the line of reasoning in your code, you can do this:

if(cbFilmes.getSelectedItem() == null || cbFilmes.getSelectedgetSelectedIndex() == 0) {

  JOptionPane.showMessageDialog(null, "Selecione um filme.");

} else {
    //código que faz o salvamento aqui
}

The condition checks whether something is selected in JCombobox or if the selected item is the first item, because in the code that populates the component, the first item is a caption ( resultados.add("Selecione o Filme:"); , and I believe it is not desirable save it.

    
26.11.2016 / 13:22