@Override
			public boolean isSelected() {
				return state != State.UNSELECTED;
			}
A tri-state check box.
<p>
The initial state is {@link State#INDETERMINATE}.
<p>
By default, the third state is allowed and clicking on the checkbox cycles through all
three states. If you want that the user can cycle only through two states, disallow
intermediate state using {@link #setAllowIndeterminate(boolean)}. Then you can still
set the indeterminate state via API if necessary, but the user can not.
<p>
The default state cycle order is {@link State#UNSELECTED} to {@link State#INDETERMINATE}
to {@link State#SELECTED}.
This is the same order as used by macOS, win32, IntelliJ IDEA and on the web as recommended by W3C in
<a href="https://www.w3.org/TR/wai-aria-practices-1.1/examples/checkbox/checkbox-2/checkbox-2.html">Tri-State Checkbox Example</a>).
<p>
If {@link #isAltStateCycleOrder()} returns {@code true},
the state cycle order is {@link State#UNSELECTED} to {@link State#SELECTED}
to {@link State#INDETERMINATE}. This order is used by Windows 10 UWP apps.
<p>
If you prefer the alternative state cycle order for all tri-state check boxes, enable it using:
<pre>
UIManager.put( "FlatTriStateCheckBox.altStateCycleOrder", true );
</pre>
<p>
To display the third state, this component requires an LaF that supports painting
the indeterminate state if client property {@code "JButton.selectedState"} has the
value {@code "indeterminate"}.
FlatLaf and macOS Aqua LaF support the third state.
For other LaFs a magenta rectangle is painted around the component for the third state.

@author Karl Tauber
flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/components/FlatTriStateCheckBox.java