/*
  Copyright (c) November 2013 by Paweł Rzechonek
  Prosta aplikacja okienkowa AWT - wyświetla kąt skrętu określony za pomocą suwaka.
  Aktualizacja kątu dokonuje się w metodzie obsługującej zdarzenie regulacji.
*/

import java.awt.*;
import java.awt.event.*;

class MyFrame extends Frame
{
    // obiekt implementujący interfejs WindowListener dla zdarzeń okienkowych
    private WindowListener frameList = new WindowAdapter()
    {
        public void windowClosing (WindowEvent ev)
        {
            MyFrame.this.dispose();
            System.exit(0);
        }
    };
    // obiekt implementujący interfejs AdjustmentListener dla zdarzeń regulacji
    private AdjustmentListener scrList = new AdjustmentListener()
    {
        public void adjustmentValueChanged (AdjustmentEvent e)
        {
            lab.setText("the current angle is "+scr.getValue()
                +" from {"+scr.getMinimum()+"..."
                +(scr.getMaximum()-scr.getVisibleAmount())+"}");
        }
    };

    private Label lab = new Label("What the steering angle?");
    private Scrollbar scr = new Scrollbar(Scrollbar.HORIZONTAL,0,15,-180,195);

    public MyFrame ()
    {
        super("turning direction");
        setSize(400,100);
        setLocation(100,100);
        add(lab,BorderLayout.NORTH);
        add(scr,BorderLayout.SOUTH);

        // źródło zdarzenia Scrollbal deleguje słuchacza zdarzeń regulacji AdjustmentListener
        // do przechwytywania i obsługi zdarzeń regulacji pochodzących od tego komponentu
        scr.addAdjustmentListener(scrList);

        // okno aplikacji Frame deleguje słuchacza zdarzeń okienkowych WindowListener
        // do przechwytywania i obsługi zdarzeń okienkowych związanych z tym oknem
        addWindowListener(frameList);

        setResizable(false);
        setVisible(true);
    }
}

public class TestAdjustmentEvent
{
    public static void main (String[] args)
    {
        new MyFrame();
    }
}

