Wątek przeniesiony 2014-12-30 12:36 z Java przez bogdans.

Przekazywanie zmiennej i obliczenia w czasie rzeczywistym

0

W jaki sposob moge przekazac innej klasie moje wartosci z wybierane przez uzytkownika na JSliderze tak aby zmiana byla na biezaco aktualizowana i brana do obliczen w innej klasie? Zwykle przekazanie sprawia, ze program ciagle widzi ja jako null i nie chce ruszyc z miejsca.

0

Możliwości

  1. Prześlij JSlidera
  2. Prześlij (o ile nie jest to typ podstawowy) wartość JSlidera
  3. Monitoruj JSlidera
0

Przesyłam JSlidera


 public int getValue() {
        return zmienna;
    }

    public static void createAndShowGui(List<Double> scoresX, List<Double> scoresY) {
        JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 20);
        slider.setMinorTickSpacing(5);
        slider.setMajorTickSpacing(10);
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        slider.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent event) {
                int value = slider.getValue();
                zmienna = value;

I jesli wyswietlam wartosc w tej klasie to jest ona taka jaka ustawi uzytkownik, natomiast w drugiej klasie ciagle jest nullem

0

Ja tu nie widzę przesyłania JSlidera.

0

Przesylam wartosci JSlidera

0

W jaki sposób?

0

W którym miejscu to robisz? Zmienna slider zadeklarowana tu:

JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 20);

i zmienna slider użyta tu:

int value = slider.getValue();

to są dwie różne zmienne. Druga z nich jest zapewne nullem.</del>
Dobry kod umieściłaś na forum? Przecież on jest niekompilowalny - zmienna slider musi byc final.

0

Przypisuje do value = zmienna, value pobieram z JSlidera .getValue(), zmienna zmienna jest globalna i w klasie w ktorej zadeklarowany jest JSlidera wypisuje ja normalnie na ekran, natomist jesli przesylam ja do drugiej klasy to wtedy jest nullem.

0

Na podstawie informacji, które nam dawkujesz, wnioskuję że do tej klasy nie przekazujesz ani przez konstruktor ani przez akcesora slidera i myślisz, że slider, którego tworzysz w metodzie to ten sam slider w klasie anonimowej. Tak jak @bogdans napisał wyżej to dwie różne zmienne.(pewnie jeszcze masz w innej klasie slidera o którego Ci chodzi:)) Dodatkowo, gdybyś nie miał w klasie zmiennej slider to bez atrybutu final kod by się nie kompilował.

0
  1. Załączony kod jest błędny (niekompilowalny). Jaki masz naprawdę kod?
  2. Co nazywasz przesyłaniem do drugiej klasy? W zamieszczonym kodzie nie ma żadnego przesyłania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0