package graphics.carl.runComponents;

import graphics.carl.CloseFrame;

//package runJgui;


public abstract class RunSlider
    extends javax.swing.JSlider implements
    javax.swing.event.ChangeListener, Runnable {

  public RunSlider(
      int orientation,
      int min, int max, int value) {
    super(orientation, min, max, value);
    setPaintTicks(true);
    int majorTickSpacking = (max - min) / 4;
    setMajorTickSpacing(majorTickSpacking);
    setMinorTickSpacing(majorTickSpacking / 5);
    setPaintLabels(true);
    addChangeListener(this);
  }

  public RunSlider() {
    this(javax.swing.JSlider.HORIZONTAL, 0, 100, 50);
  }

  public RunSlider(int orientation) {
    this(orientation, 0, 100, 50);
  }

  public RunSlider(int min, int max) {
    this(javax.swing.JSlider.HORIZONTAL, min, max, 50);
  }


  public void stateChanged(javax.swing.event.ChangeEvent ae) {
    run();
  }

  public static void main(String args[]) {
    CloseFrame cf = new CloseFrame();
    cf.setSize(200, 200);
    java.awt.Container c = cf.getContentPane();
    c.setLayout(new java.awt.FlowLayout());
    c.add(new RunSlider() {
      public void run() {
        System.out.println(
            "value=" + getValue());
      }
    });
    cf.setVisible(true);
  }

}