# Class PseudoClass

java.lang.Object
javafx.css.PseudoClass

public abstract class PseudoClass extends Object
PseudoClass represents one unique pseudo-class state. Introducing a pseudo-class into a JavaFX class only requires that the method `Node.pseudoClassStateChanged(javafx.css.PseudoClass, boolean)` be called when the pseudo-class state changes. Typically, the `pseudoClassStateChanged` method is called from the `protected void invalidated()` method of one of the property base classes in the `javafx.beans.property` package.

Note that if a node has a default pseudo-class state, a horizontal orientation for example, `pseudoClassStateChanged` should be called from the constructor to set the initial state.

The following example would allow "xyzzy" to be used as a pseudo-class in a CSS selector.

      public boolean isMagic() {
           return magic.get();
       }

       public BooleanProperty magicProperty() {
           return magic;
       }

       public BooleanProperty magic =
           new BooleanPropertyBase(false) {

           @Override protected void invalidated() {
               pseudoClassStateChanged(MAGIC_PSEUDO_CLASS, get());
           }

           @Override public Object getBean() {
               return MyControl.this;
           }

           @Override public String getName() {
               return "magic";
           }
       }

       private static final PseudoClass
           MAGIC_PSEUDO_CLASS = PseudoClass.getPseudoClass("xyzzy");

Since:
  JavaFX 8.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PseudoClass()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static PseudoClass`
  `getPseudoClass(String pseudoClass)`
  Gets the `PseudoClass` instance for a given pseudo class name.
  `abstract String`
  `getPseudoClassName()`
  Gets the name of the `PseudoClass`.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### PseudoClass

    public PseudoClass()
    Constructor for subclasses to call.

- ## Method Details

  - ### getPseudoClass

    public static PseudoClass getPseudoClass(String pseudoClass)
    Gets the `PseudoClass` instance for a given pseudo class name.

    Note: There is only one `PseudoClass` instance for a given pseudo class name.

    Parameters:
      `pseudoClass` - the name of the pseudo class
    Returns:
      the `PseudoClass` instance for a given pseudo class name; It will not return `null`
    Throws:
      `IllegalArgumentException` - if pseudoClass parameter is `null` or an empty `String`

  - ### getPseudoClassName

    public abstract String getPseudoClassName()
    Gets the name of the `PseudoClass`.
    Returns:
      the name of the `PseudoClass`