# Class BooleanControl

java.lang.Object
javax.sound.sampled.Control
javax.sound.sampled.BooleanControl

public abstract class BooleanControl extends Control
A `BooleanControl` provides the ability to switch between two possible settings that affect a line's audio. The settings are boolean values (`true` and `false`). A graphical user interface might represent the control by a two-state button, an on/off switch, two mutually exclusive buttons, or a checkbox (among other possibilities). For example, depressing a button might activate a `MUTE` control to silence the line's audio.

As with other `Control` subclasses, a method is provided that returns string labels for the values, suitable for display in the user interface.

Since:
  1.3

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `BooleanControl.Type`
  An instance of the `BooleanControl.Type` class identifies one kind of boolean control.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `BooleanControl(BooleanControl.Type type, boolean initialValue)`
  Constructs a new boolean control object with the given parameters.
  `protected`
  `BooleanControl(BooleanControl.Type type, boolean initialValue, String trueStateLabel, String falseStateLabel)`
  Constructs a new boolean control object with the given parameters.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getStateLabel(boolean state)`
  Obtains the label for the specified state.
  `boolean`
  `getValue()`
  Obtains this control's current value.
  `void`
  `setValue(boolean value)`
  Sets the current value for the control.
  `String`
  `toString()`
  Returns a string representation of the boolean control.

  ### Methods declared in class Control

  `getType`
  Modifier and Type
  Method
  Description
  `Control.Type`
  `getType()`
  Obtains the control's type.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### BooleanControl

    protected BooleanControl(BooleanControl.Type type, boolean initialValue, String trueStateLabel, String falseStateLabel)
    Constructs a new boolean control object with the given parameters.
    Parameters:
      `type` - the type of control represented this float control object
      `initialValue` - the initial control value
      `trueStateLabel` - the label for the state represented by `true`, such as "true" or "on"
      `falseStateLabel` - the label for the state represented by `false`, such as "false" or "off"

  - ### BooleanControl

    protected BooleanControl(BooleanControl.Type type, boolean initialValue)
    Constructs a new boolean control object with the given parameters. The labels for the `true` and `false` states default to "true" and "false".
    Parameters:
      `type` - the type of control represented by this float control object
      `initialValue` - the initial control value

- ## Method Details

  - ### setValue

    public void setValue(boolean value)
    Sets the current value for the control. The default implementation simply sets the value as indicated. Some controls require that their line be open before they can be affected by setting a value.
    Parameters:
      `value` - desired new value

  - ### getValue

    public boolean getValue()
    Obtains this control's current value.
    Returns:
      current value

  - ### getStateLabel

    public String getStateLabel(boolean state)
    Obtains the label for the specified state.
    Parameters:
      `state` - the state whose label will be returned
    Returns:
      the label for the specified state, such as "true" or "on" for `true`, or "false" or "off" for `false`

  - ### toString

    public String toString()
    Returns a string representation of the boolean control.
    Overrides:
      `toString` in class `Control`
    Returns:
      a string representation of the boolean control