Укорочение метода переключения для JLabels - PullRequest
0 голосов
/ 30 мая 2018

У меня есть метод, который принимает портфель, и выбранный пользователем номер портфеля, который содержит значение.Например .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 голосов
/ 31 мая 2018

Спасибо за вашу помощь всем.Вот как я сократил свой код:

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);
       }
    }
0 голосов
/ 30 мая 2018

Создайте массив JLabel в своем классе Briefcase для хранения ваших меток.Затем средство доступа для всех сразу:

public JLabel[] getValues();

Или для получения только того, который вы хотите:

public JLabel getValue(int number);
...