Wątek przeniesiony 2014-12-30 12:36 z przez bogdans. Powód: Wątek dotyczący podstaw

Przekazywanie zmiennej i obliczenia w czasie rzeczywistym

Odpowiedz Nowy wątek
2014-12-30 00:29
kfldfkldfk
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.

Pozostało 580 znaków

2014-12-30 00:32
0

Możliwości

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

Pozostało 580 znaków

2014-12-30 00:34
kfldfkldfk
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

edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-30 00:42
0

Ja tu nie widzę przesyłania JSlidera.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-30 00:53
kfldfkldfk
0

Przesylam wartosci JSlidera

Pozostało 580 znaków

2014-12-30 01:13
0

W jaki sposób?


Hate the sin, love the sinner

Pozostało 580 znaków

2014-12-30 01:18
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 2x, ostatnio: bogdans, 2014-12-30 08:32

Pozostało 580 znaków

2014-12-30 11:43
kfldfkldfk
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.

Pozostało 580 znaków

2014-12-30 11:53
garai_nz
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ł.

Pozostało 580 znaków

2014-12-30 11:54
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.

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-30 12:07
0

Poddaje się, masz przykład:

import javax.swing.*;
import javax.swing.event.*;
 
public class Second extends JFrame
{
    First first = null;
    public Second(First f)
    {
        this.first = f;
        final 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) 
            {
                first.info.setText(""+slider.getValue());
            }
        });  
        add(slider);        
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}
 
import javax.swing.*;
 
public class First extends JFrame
{
    public JTextField info = new JTextField(12);
    public static void main(String[] arga)
    {
        new First();
    }
    public First()
    {
        info.setEditable(false);
        add(info);
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        new Second(this).setVisible(true);
        setVisible(true);
    }
}

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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