with the code below out of the six possibilitys for 3 of the boxes only 3 work as exspected even though there are 6 if/else statement and 3 listeners to cover any order that the check boxes are checked. I was trying to get the frist 3 to work first when only doing the first two boxes they work fine but with three now three of six possible combinations work. Will need to get to all 6 working in any order their pressed the key is that if two boxs are checked the rest disable than when you deselect one they all reenable. Note the program itself works fine and the radio buttons are grouped so only one can be selected at a time.
inches.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
Object source = e.getItemSelectable();
if (source == inches) {
if (inches.isSelected() && feet.isSelected()) {
miles.setEnabled(false);
centi.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);}
else{
miles.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (inches.isSelected() && miles.isSelected()) {
feet.setEnabled(false);
centi.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);
}
else{
feet.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (e.getStateChange() == ItemEvent.DESELECTED);
}
}
});
feet.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
Object source = e.getItemSelectable();{
if (source == feet) {
if (feet.isSelected() && miles.isSelected()) {
inches.setEnabled(false);
centi.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);
}
else{
inches.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (feet.isSelected() && inches.isSelected()) {
miles.setEnabled(false);
centi.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);
}
else{
miles.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (e.getStateChange() == ItemEvent.DESELECTED);}
}
}
});
miles.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
Object source = e.getItemSelectable();
if(source == miles) {
if (inches.isSelected() && miles.isSelected()) {
centi.setEnabled(false);
feet.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);
}
else{
feet.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (feet.isSelected() && miles.isSelected()) {
inches.setEnabled(false);
centi.setEnabled(false);
meters.setEnabled(false);
km.setEnabled(false);
}
else{
inches.setEnabled(true);
centi.setEnabled(true);
meters.setEnabled(true);
km.setEnabled(true);
}
if (e.getStateChange() == ItemEvent.DESELECTED);
}
}
});
Aucun commentaire:
Enregistrer un commentaire