Search code examples
javaif-statementjtextfield

Take different actions depending on jTextField value


I have many more cases, but I'm wondering if there is a simpler way to do this. If the user enters 1 the program will convert from inches to cm, if the user enters 2, the program will convert from cm to feet, etc.

if (jTextField1.getText() == 1) {
    InchesToCm();
} else if (jTextField1.getText() == 2) {
    CmToFeet();
} else if (jTextField1.getText() == 3) {
    MetresToYards();
} else if (jTextField1.getText() == 4) {
    KmToMetres();
} else {
    jLabel8.setText("Error, try again");
}

Solution

  • It depends on your definition of 'simpler' but you could use a switch statement. Like so:

    switch(Integer.parseInt(jTextField1.getText())){
    case 1:
        InchesToCm();
        break;
    case 2:
        CmToFeet();
        break;
    case 3:
        MetresToYards();
        break;
    case 4:
        KmToMetres();
        break;
        default:
            jLabel8.setText("Error, try again");
            break;
    }
    

    This way you don't have to use a chain of if statements but if it's simpler is up to you.

    I hope this helps :)