/*
* @(#)SliderComp.java 1.5 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.ui;
import java.awt.*;
import java.awt.event.*;
public class SliderComp extends BasicComp
implements ActionListener {
float value;
float minValue;
float maxValue;
float initialValue;
Scroll scroll;
TextField tfIndicator;
private static final int MIN = 0;
private static final int MAX = 1000;
private static final int PAGESIZE = 100;
public SliderComp(String label, float min, float max, float initial) {
super(label);
this.minValue = min;
this.maxValue = max;
this.initialValue = initial;
this.value = initial;
setLayout(new BorderLayout());
Label lab = new Label(label, Label.LEFT);
add("West", lab);
scroll = new Scroll();
add("Center", scroll);
scroll.setActionListener(this);
scroll.setValue(toRatio(value));
//tfIndicator = new TextField(5);
//add("East", tfIndicator);
//tfIndicator.addActionListener(this);
}
public void setValue(int value) {
this.value = (float) value;
scroll.setValue(toRatio(value));
}
public void setValue(float value) {
this.value = value;
scroll.setValue(toRatio(value));
}
public int getIntValue() {
return (int) value;
}
public float getFloatValue() {
return value;
}
public void actionPerformed(ActionEvent ae) {
float scrollValue = scroll.getValue();
value = fromRatio(scrollValue);
//tfIndicator.setText(Float.toString(value));
informListener();
}
private float toRatio(float value) {
float diff = maxValue - minValue;
return (value - minValue) / diff;
}
private float fromRatio(float value) {
return value * (maxValue - minValue) + minValue;
}
}
|