Обработка событий полосы прокрутки, как сохранить число захваченным статическим - PullRequest
0 голосов
/ 19 января 2010

Как видно из названия, у меня есть программа с интерфейсом полосы прокрутки. Проблема в том, что программа использует одни и те же три полосы прокрутки для четырех наборов разных чисел, после того как изменение было выполнено для другого набора чисел, полоса прокрутки остается на тех же значениях из предыдущего набора чисел

        float RedAmount1 = lightDimmer1.getValue();
        float GreenAmount1 = lightDimmer2.getValue();
        float BlueAmount1 = lightDimmer3.getValue();

        diffuseSwitch[0] = RedAmount1;          
        diffuseSwitch[1] = GreenAmount1;
        diffuseSwitch[2] = BlueAmount1;

        float StoreColours1[] = {RedAmount1,GreenAmount1,BlueAmount1};

        int StoreColourRed = (int)StoreColours1[0];
        int StoreColourGreen = (int)StoreColours1[1];
        int StoreColourBlue = (int)StoreColours1[2];

        if(diffuseSwitch[0] != StoreColourRed)
        {
         lightDimmer1.setValue(StoreColourRed);
        }

Этот фрагмент кода помещен в раздел обработки событий полосы прокрутки, поэтому число, которое я пытаюсь сравнить с плавающей точкой StoreColourRed и diffuseSwitch [0], продолжают изменяться на значения самого последнего набора чисел вместо сохранения предыдущего набора значений.

любая помощь будет высоко ценится

1 Ответ

1 голос
/ 19 января 2010

Используйте очень простой класс для хранения ваших значений, например:

private static class MyColor {
    float red, green, blue;
}

Вы должны иметь возможность использовать getValueIsAdjusting() и setValueIsAdjusting(), чтобы определить, когда значения стабильны. Вы также можете попросить нас JRadioButton или JComboBox выбрать, каким набором значений манипулировать.

Приложение: я небрежно предположил JSlider при чтении вопроса. Кроме того, регулировка, вероятно, не имеет значения. JTabbedPane - это другой выбор для выбора того, каким набором значений манипулировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...