<dd><code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><ahref="Keyboard.html"title="class in net.java.games.input">Keyboard</a></code>, <code><ahref="LinuxCombinedController.html"title="class in net.java.games.input">LinuxCombinedController</a></code>, <code><ahref="Mouse.html"title="class in net.java.games.input">Mouse</a></code>, <code><ahref="WinTabDevice.html"title="class in net.java.games.input">WinTabDevice</a></code></dd>
</dl>
<hr>
<pre>public abstract class <spanclass="typeNameLabel">AbstractController</span>
extends java.lang.Object
implements <ahref="Controller.html"title="interface in net.java.games.input">Controller</a></pre>
<divclass="block">An AbstractController is a skeleton implementation of a controller that
contains a fixed number of axes, controllers, and rumblers.</div>
<h3>Nested classes/interfaces inherited from interface net.java.games.input.<ahref="Controller.html"title="interface in net.java.games.input">Controller</a></h3>
<code><ahref="Controller.PortType.html"title="class in net.java.games.input">Controller.PortType</a>, <ahref="Controller.Type.html"title="class in net.java.games.input">Controller.Type</a></code></li>
<thclass="colFirst"scope="col">Modifier and Type</th>
<thclass="colSecond"scope="col">Method</th>
<thclass="colLast"scope="col">Description</th>
</tr>
<trid="i0"class="altColor">
<tdclass="colFirst"><code><ahref="Component.html"title="interface in net.java.games.input">Component</a></code></td>
<thclass="colSecond"scope="row"><code><spanclass="memberNameLink"><ahref="#getComponent(net.java.games.input.Component.Identifier)">getComponent</a></span>​(<ahref="Component.Identifier.html"title="class in net.java.games.input">Component.Identifier</a> id)</code></th>
<tdclass="colLast">
<divclass="block">Returns a single component based on its identifier, or null
if no component with the specified type could be found.</div>
</td>
</tr>
<trid="i1"class="rowColor">
<tdclass="colFirst"><code><ahref="Component.html"title="interface in net.java.games.input">Component</a>[]</code></td>
<thclass="colSecond"scope="row"><code><spanclass="memberNameLink"><ahref="#getNextDeviceEvent(net.java.games.input.Event)">getNextDeviceEvent</a></span>​(<ahref="Event.html"title="class in net.java.games.input">Event</a> event)</code></th>
<dd><code>name</code> - name for the controller</dd>
<dd><code>components</code> - components for the controller</dd>
<dd><code>children</code> - child controllers for the controller</dd>
<dd><code>rumblers</code> - rumblers for the controller</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<sectionrole="region">
<ulclass="blockList">
<liclass="blockList"><aid="method.detail">
<!---->
</a>
<h3>Method Detail</h3>
<aid="getControllers()">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getControllers</h4>
<preclass="methodSignature">public final <ahref="Controller.html"title="interface in net.java.games.input">Controller</a>[] getControllers()</pre>
<divclass="block">Returns the controllers connected to make up this controller, or
an empty array if this controller contains no child controllers.
The objects in the array are returned in order of assignment priority
<dd><code><ahref="Controller.html#getControllers()">getControllers</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
</dl>
</li>
</ul>
<aid="getComponents()">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getComponents</h4>
<preclass="methodSignature">public final <ahref="Component.html"title="interface in net.java.games.input">Component</a>[] getComponents()</pre>
<divclass="block">Returns the components on this controller, in order of assignment priority.
For example, the button controller on a mouse returns an array containing
the primary or leftmost mouse button, followed by the secondary or
rightmost mouse button (if present), followed by the middle mouse button
(if present).
The array returned is an empty array if this controller contains no components
(such as a logical grouping of child controllers).</div>
<dd><code><ahref="Controller.html#getComponents()">getComponents</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<preclass="methodSignature">public final <ahref="Component.html"title="interface in net.java.games.input">Component</a> getComponent​(<ahref="Component.Identifier.html"title="class in net.java.games.input">Component.Identifier</a> id)</pre>
<divclass="block">Returns a single component based on its identifier, or null
if no component with the specified type could be found.</div>
<dd><code><ahref="Controller.html#getComponent(net.java.games.input.Component.Identifier)">getComponent</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
</dl>
</li>
</ul>
<aid="getRumblers()">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getRumblers</h4>
<preclass="methodSignature">public final <ahref="Rumbler.html"title="interface in net.java.games.input">Rumbler</a>[] getRumblers()</pre>
<divclass="block">Returns the rumblers for sending feedback to this controller, or an
empty array if there are no rumblers on this controller.</div>
<dd><code><ahref="Controller.html#getRumblers()">getRumblers</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
</dl>
</li>
</ul>
<aid="getPortType()">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getPortType</h4>
<preclass="methodSignature">public <ahref="Controller.PortType.html"title="class in net.java.games.input">Controller.PortType</a> getPortType()</pre>
<divclass="block">Returns the port type for this Controller.</div>
<dd><code><ahref="Controller.html#getPortType()">getPortType</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>PortType.UNKNOWN by default, can be overridden</dd>
<dd><code><ahref="Controller.html#getPortNumber()">getPortNumber</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<dd><code><ahref="Controller.html#getName()">getName</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<dd><code><ahref="Controller.html#getType()">getType</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<dd><code><ahref="Controller.html#setEventQueueSize(int)">setEventQueueSize</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<divclass="block">Plugins override this method to adjust their internal event queue size</div>
<dl>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<aid="getEventQueue()">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getEventQueue</h4>
<preclass="methodSignature">public final <ahref="EventQueue.html"title="class in net.java.games.input">EventQueue</a> getEventQueue()</pre>
<divclass="block"><spanclass="descfrmTypeLabel">Description copied from interface: <code><ahref="Controller.html#getEventQueue()">Controller</a></code></span></div>
<divclass="block">Get the device event queue</div>
<dd><code><ahref="Controller.html#getEventQueue()">getEventQueue</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>
<preclass="methodSignature">protected abstract boolean getNextDeviceEvent​(<ahref="Event.html"title="class in net.java.games.input">Event</a> event)
<divclass="block"><spanclass="descfrmTypeLabel">Description copied from interface: <code><ahref="Controller.html#poll()">Controller</a></code></span></div>
<divclass="block">Polls axes for data. Returns false if the controller is no longer valid.
Polling reflects the current state of the device when polled.</div>
<dd><code><ahref="Controller.html#poll()">poll</a></code> in interface <code><ahref="Controller.html"title="interface in net.java.games.input">Controller</a></code></dd>