我有一个方法,它接收一个公文包,以及用户选择的公文包号码,它包含一个值。例如.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个案例,我还没有包含在此代码中
答案 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);
}
}