缩短JLabels

时间:2018-05-30 08:07:25

标签: java switch-statement

我有一个方法,它接收一个公文包,以及用户选择的公文包号码,它包含一个值。例如.getValue1()返回一个JLabel。我该怎么做才能缩短这个开关盒,所以我不重复代码?

public void removeValueDisplay(Briefcase briefcase, int caseNum) {

    switch (Model.briefcases[caseNum - 1].getValue()) 
    {
        case 1:
            view.getValue1().setEnabled(false);
            break;
        case 2:
            view.getValue2().setEnabled(false);
            break;
        case 5:
            view.getValue5().setEnabled(false);
            break;
        case 10:
            view.getValue10().setEnabled(false);
            break;
        case 25:
            view.getValue25().setEnabled(false);
            break;
    }
}

总共有26个案例,我还没有包含在此代码中

2 个答案:

答案 0 :(得分:0)

在Briefcase类中创建一个JLabel数组来存储标签。然后一次访问所有人:

public JLabel[] getValues();

或者只检索您想要的那个:

public JLabel getValue(int number);

答案 1 :(得分:-1)

感谢大家的帮助。这就是我如何缩短我的代码:

public void removeValueDisplay(int caseNum) {

    for (int i = 0; i < Model.briefcases.length; ++i) {
       if(Model.briefcases[caseNum - 1].getValue() == Model.values[i]) {
           view.getValueLabels()[i].setEnabled(false);
       }
    }