Пара вещей, которые помогут вам
для вашей логики, так как вы знаете, что выбор включен или выключен, попробуйте следующее
if(doctorBox.isSelected())
//do something
else
//do something else
если флажок не установлен, измените его с ItemListener на ActionListener.
private class aListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == doctorBox){
if(doctorBox.isSelected())
JOptionPane.showMessageDialog(null, "you are a doctor");
else {
JOptionPane.showMessageDialog(null, "you are not a doctor");
}
}
}
}
Если вы посмотрите на текущий код и пройдете по нему с помощью отладки, вы увидите, что ваш ItemListener запускается 2 раза. Первый раз это проверяет, второй раз это снимает. Все в один клик. Я не могу объяснить внутреннюю работу itemListener в этом случае. ActionListener работает намного лучше