Выберите, какой массив хранить на основе нажатия кнопки - PullRequest
1 голос
/ 01 ноября 2011

Я пытаюсь найти способ выбрать, что хранит массив, на основе какой кнопки пользователь нажимает в графическом интерфейсе.

Очевидно, что это не скомпилируется из-за того, что имя переменной совпадает.

Расчеты выполняются вне цикла, но используют «значения».Я просто хочу, чтобы пользователь мог определить, какие значения установлены в массиве, в зависимости от того, какую кнопку он нажимает.Очевидная проблема заключается в невозможности использовать имя «значения» дважды, поэтому у меня возникает проблема, поскольку у меня есть цикл for, для которого требуется переменная «значения», и я не хочу повторного добавлениякодируйте несколько раз для каждого набора данных, когда, скорее всего, существует простой обходной путь, которого я сейчас не вижу.

Ответы [ 3 ]

2 голосов
/ 01 ноября 2011

Просто вытащите декларацию:

double[] Xvalues = null;
if (e.getSource() == X1btn) {
   Xvalues = new double[]{2001,350,799,1004};
}
else if (e.getSource() == X2btn) {
   Xvalues = new double[]{5,62,28,500};
}
1 голос
/ 01 ноября 2011

Лучшим подходом было бы создать подкласс JButton и связать набор значений с каждым экземпляром.Чтобы получить значения кнопки, включите метод доступа.

Пример

public final class JArrayButton extends JButton{
    private final double[] values;

    public JArrayButton(double[] values){
        this.values = values;
    }

    // ... other stuff (e.g. constructors)

    public final double[] getValues(){
        return values;
    }
}
0 голосов
/ 01 ноября 2011

Что если вы создадите массив с обратной стороны цикла. double Xvalues ​​[] = новые Xvalues ​​[5]; // или любой другой размер, который вы хотите

, а затем используйте оператор if / else

if (e.getSource() == X1btn) {
Xvalues ={2001,350,799,1004};
} else if (e.getSource() == X2btn) {
Xvalues={5,62,28,500};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...