Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Seleionar apenas um Checkbox Java

preciso fazer com que meus checkbox aceitem apenas um selecionado, e se o usuario selecionar um e for selecionar outro ele tira a seleção do outro

eu fiz uma gambiarra pra mostrar um erro caso ele selecione mais de um ou nao selecione nenhum, mas queria algo melhor q isso

private boolean conferecheck() {

        if (ckbAluno.isSelected() && ckbAdministrador.isSelected() && ckbProfessor.isSelected()) {
            JOptionPane.showMessageDialog(null, "Escolha apenas um tipo de usuario", "Erro", JOptionPane.ERROR_MESSAGE);
            return false;

        } else if (ckbAluno.isSelected() && ckbAdministrador.isSelected()) {
            JOptionPane.showMessageDialog(null, "Escolha apenas um tipo de usuario", "Erro", JOptionPane.ERROR_MESSAGE);
            return false;

        } else if (ckbAluno.isSelected() && ckbProfessor.isSelected()) {
            JOptionPane.showMessageDialog(null, "Escolha apenas um tipo de usuario", "Erro", JOptionPane.ERROR_MESSAGE);
            return false;

        } else if (ckbAdministrador.isSelected() && ckbProfessor.isSelected()) {
            JOptionPane.showMessageDialog(null, "Escolha apenas um tipo de usuario", "Erro", JOptionPane.ERROR_MESSAGE);
            return false;
        } else if (!ckbAluno.isSelected() && !ckbAdministrador.isSelected() && !ckbProfessor.isSelected()) {
            JOptionPane.showMessageDialog(null, "Escolha um tipo de usuario", "Erro", JOptionPane.ERROR_MESSAGE);
            return false;

        } else {
            return true;
        }
    }
2 respostas

Acho que vc precisa de JRadioButton... Dá uma olhada aqui na documentação => https://docs.oracle.com/javase/tutorial/uiswing/components/button.html

Procura por RadioButton

solução!

Consegui de um jeito melhor fazendo assim

private void ckbAlunoActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if (ckbAdministrador.isSelected()) {
            ckbAdministrador.setSelected(false);
        }
        if (ckbProfessor.isSelected()) {
            ckbProfessor.setSelected(false);
        }
    }                                        

    private void ckbProfessorActionPerformed(java.awt.event.ActionEvent evt) {                                             
        if (ckbAdministrador.isSelected()) {
            ckbAdministrador.setSelected(false);
        }
        if (ckbAluno.isSelected()) {
            ckbAluno.setSelected(false);
        }
    }                                            

    private void ckbAdministradorActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        if (ckbAluno.isSelected()) {
            ckbAluno.setSelected(false);
        }
        if (ckbProfessor.isSelected()) {
            ckbProfessor.setSelected(false);
        }
    }