Witam
Moim zadaniem było stworzyć program przedstawiający powstawanie funkcji sinus (Cały kod jest w tym temacie Swing i aktualizacja wyświetlania animacji) . I teraz mam dodać do niego opcje na zmianę kąta początkowego. Postanowiłem zrobić to na suwaku. W klasie DrawGraphPanel dołączyłem suwak w ten sposób:
< code = java>
public class DrawGraphPanel extends JPanel {
DrawGraphBox b_graph ;
private DrawGraph graph = new DrawGraph();
int value;
private JSlider slider = new JSlider(0, 50, 5);

public DrawGraphPanel()
{
    
    b_graph = new DrawGraphBox();        
    JButton startButton = new JButton("Start");        
    JButton stopButton  = new JButton("Stop"); 
    
    startButton.addActionListener(new StartAction());
    stopButton.addActionListener(new StopAction());
   
    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new FlowLayout());
    buttonPanel.add(startButton);
    buttonPanel.add(stopButton); 
    
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setMajorTickSpacing(10);
    slider.setMinorTickSpacing(5);
    slider.setBorder(new TitledBorder("Zmien fazę początkową"));        
    MyChangeListener lst = new MyChangeListener();
    slider.addChangeListener(lst);
    
    
    this.setLayout(new BorderLayout());
    this.add(buttonPanel, BorderLayout.NORTH);
    this.add(b_graph , BorderLayout.CENTER);
    this.add(slider, BorderLayout.SOUTH);
    lst.stateChanged(new ChangeEvent(slider));
}
    

class StartAction implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        b_graph.setAnimation(true);
    }
}   

class StopAction implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        b_graph.setAnimation(false);
    }
}  

class MyChangeListener implements ChangeListener
{
    public MyChangeListener() {            
    }

    @Override
    public synchronized void stateChanged(ChangeEvent e) {
        value = slider.getValue();             
        graph.setPhase(value);
        System.out.println(value);            
     }
}    
    

}

W klasie DrawGraph zamieściłem metodę setPhase
Problem jest taki że nie wiem dlaczego wartość suwaka nie jest przesyłana do ustawienia fazy. Nie wiem czy trzeba jakiegoś ActionListenera czy może w ogóle robię to w zły sposób. 
Czy ktoś mógłby mi wyjaśnić w jaki sposób mogę to zrobić ??

Z góry dziękuje za pomoc