public abstract class FloatControl extends Control
FloatControl
object provides control over a range of floating-point
values. Float controls are often represented in graphical user interfaces by
continuously adjustable objects such as sliders or rotary knobs. Concrete
subclasses of FloatControl
implement controls, such as gain and pan,
that affect a line's audio signal in some way that an application can
manipulate. The FloatControl.Type
inner class provides static
instances of types that are used to identify some common kinds of float
control.
The FloatControl
abstract class provides methods to set and get the
control's current floating-point value. Other methods obtain the possible
range of values and the control's resolution (the smallest increment between
returned values). Some float controls allow ramping to a new value over a
specified period of time. FloatControl
also includes methods that
return string labels for the minimum, maximum, and midpoint positions of the
control.
Line.getControls()
,
Line.isControlSupported(javax.sound.sampled.Control.Type)
Modifier and Type | Class and Description |
---|---|
static class |
FloatControl.Type
An instance of the
FloatControl.Type inner class identifies one
kind of float control. |
Modifier | Constructor and Description |
---|---|
protected |
FloatControl(FloatControl.Type type,
float minimum,
float maximum,
float precision,
int updatePeriod,
float initialValue,
String units)
Constructs a new float control object with the given parameters.
|
protected |
FloatControl(FloatControl.Type type,
float minimum,
float maximum,
float precision,
int updatePeriod,
float initialValue,
String units,
String minLabel,
String midLabel,
String maxLabel)
Constructs a new float control object with the given parameters.
|
Modifier and Type | Method and Description |
---|---|
float |
getMaximum()
Obtains the maximum value permitted.
|
String |
getMaxLabel()
Obtains the label for the maximum value, such as "Right" or "Full".
|
String |
getMidLabel()
Obtains the label for the mid-point value, such as "Center" or "Default".
|
float |
getMinimum()
Obtains the minimum value permitted.
|
String |
getMinLabel()
Obtains the label for the minimum value, such as "Left" or "Off".
|
float |
getPrecision()
Obtains the resolution or granularity of the control, in the units that
the control measures.
|
String |
getUnits()
Obtains the label for the units in which the control's values are
expressed, such as "dB" or "frames per second."
|
int |
getUpdatePeriod()
Obtains the smallest time interval, in microseconds, over which the
control's value can change during a shift.
|
float |
getValue()
Obtains this control's current value.
|
void |
setValue(float newValue)
Sets the current value for the control.
|
void |
shift(float from,
float to,
int microseconds)
Changes the control value from the initial value to the final value
linearly over the specified time period, specified in microseconds.
|
String |
toString()
Provides a string representation of the control.
|
protected FloatControl(FloatControl.Type type, float minimum, float maximum, float precision, int updatePeriod, float initialValue, String units, String minLabel, String midLabel, String maxLabel)
type
- the kind of control represented by this float control objectminimum
- the smallest value permitted for the controlmaximum
- the largest value permitted for the controlprecision
- the resolution or granularity of the control. This is
the size of the increment between discrete valid values.updatePeriod
- the smallest time interval, in microseconds, over
which the control can change from one discrete value to the next
during a shift
initialValue
- the value that the control starts with when
constructedunits
- the label for the units in which the control's values are
expressed, such as "dB" or "frames per second"minLabel
- the label for the minimum value, such as "Left" or "Off"midLabel
- the label for the midpoint value, such as "Center" or
"Default"maxLabel
- the label for the maximum value, such as "Right" or
"Full"IllegalArgumentException
- if minimum
is greater than
maximum
or initialValue
does not fall within the
allowable rangeprotected FloatControl(FloatControl.Type type, float minimum, float maximum, float precision, int updatePeriod, float initialValue, String units)
type
- the kind of control represented by this float control objectminimum
- the smallest value permitted for the controlmaximum
- the largest value permitted for the controlprecision
- the resolution or granularity of the control. This is
the size of the increment between discrete valid values.updatePeriod
- the smallest time interval, in microseconds, over
which the control can change from one discrete value to the next
during a shift
initialValue
- the value that the control starts with when
constructedunits
- the label for the units in which the control's values are
expressed, such as "dB" or "frames per second"IllegalArgumentException
- if minimum
is greater than
maximum
or initialValue
does not fall within the
allowable rangepublic void setValue(float newValue)
IllegalArgumentException
is thrown. Some controls require that
their line be open before they can be affected by setting a value.newValue
- desired new valueIllegalArgumentException
- if the value indicated does not fall
within the allowable rangepublic float getValue()
public float getMaximum()
public float getMinimum()
public String getUnits()
public String getMinLabel()
public String getMidLabel()
public String getMaxLabel()
public float getPrecision()
public int getUpdatePeriod()
shift(float, float, int)
public void shift(float from, float to, int microseconds)
from
- initial value at the beginning of the shiftto
- final value after the shiftmicroseconds
- maximum duration of the shift in microsecondsIllegalArgumentException
- if either from
or to
value does not fall within the allowable rangegetUpdatePeriod()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait