8184219: Fix accessibility of tables in the java.desktop module

Reviewed-by: jjg
This commit is contained in:
Sergey Bylokhov 2017-10-20 15:39:50 -07:00
parent 5852f663bf
commit 49c29ca974
39 changed files with 1597 additions and 1554 deletions

View File

@ -117,24 +117,30 @@ public interface AppletContext {
* <table class="striped">
* <caption>Target arguments and their descriptions</caption>
* <thead>
* <tr><th>Target Argument</th>
* <th>Description</th></tr>
* <tr>
* <th scope="col">Target Argument
* <th scope="col">Description
* </thead>
* <tbody>
* <tr><td>{@code "_self"} <td>Show in the window and frame that
* contain the applet.</tr>
* <tr><td>{@code "_parent"}<td>Show in the applet's parent frame. If
* the applet's frame has no parent frame,
* acts the same as "_self".</tr>
* <tr><td>{@code "_top"} <td>Show in the top-level frame of the applet's
* window. If the applet's frame is the
* top-level frame, acts the same as "_self".</tr>
* <tr><td>{@code "_blank"} <td>Show in a new, unnamed
* top-level window.</tr>
* <tr><td><i>name</i><td>Show in the frame or window named <i>name</i>. If
* a target named <i>name</i> does not already exist, a
* new top-level window with the specified name is created,
* and the document is shown there.</tr>
* <tr>
* <th scope="row">{@code "_self"}
* <td>Show in the window and frame that contain the applet.
* <tr>
* <th scope="row">{@code "_parent"}
* <td>Show in the applet's parent frame. If the applet's frame has no
* parent frame, acts the same as "_self".
* <tr>
* <th scope="row">{@code "_top"}
* <td>Show in the top-level frame of the applet's window. If the
* applet's frame is the top-level frame, acts the same as "_self".
* <tr>
* <th scope="row">{@code "_blank"}
* <td>Show in a new, unnamed top-level window.
* <tr>
* <th scope="row"><i>name</i>
* <td>Show in the frame or window named <i>name</i>. If a target named
* <i>name</i> does not already exist, a new top-level window with the
* specified name is created, and the document is shown there.
* </tbody>
* </table>
* <p>

View File

@ -94,25 +94,23 @@ public class AWTKeyStroke implements Serializable {
* <table class="striped">
* <caption>AWTKeyStroke default values</caption>
* <thead>
* <tr><th>Property</th><th>Default Value</th></tr>
* <tr>
* <th scope="col">Property
* <th scope="col">Default Value
* </thead>
* <tbody>
* <tr>
* <td>Key Char</td>
* <td>{@code KeyEvent.CHAR_UNDEFINED}</td>
* </tr>
* <tr>
* <td>Key Code</td>
* <td>{@code KeyEvent.VK_UNDEFINED}</td>
* </tr>
* <tr>
* <td>Modifiers</td>
* <td>none</td>
* </tr>
* <tr>
* <td>On key release?</td>
* <td>{@code false}</td>
* </tr>
* <tr>
* <th scope="row">Key Char
* <td>{@code KeyEvent.CHAR_UNDEFINED}
* <tr>
* <th scope="row">Key Code
* <td>{@code KeyEvent.VK_UNDEFINED}
* <tr>
* <th scope="row">Modifiers
* <td>none
* <tr>
* <th scope="row">On key release?
* <td>{@code false}
* </tbody>
* </table>
*

View File

@ -48,144 +48,116 @@ import java.security.BasicPermission;
* <caption>AWTPermission target names, descriptions, and associated risks
* </caption>
* <thead>
* <tr>
* <th>Permission Target Name</th>
* <th>What the Permission Allows</th>
* <th>Risks of Allowing this Permission</th>
* </tr>
* <tr>
* <th scope="col">Permission Target Name
* <th scope="col">What the Permission Allows
* <th scope="col">Risks of Allowing this Permission
* </thead>
* <tbody>
* <tr>
* <td>accessClipboard</td>
* <td>Posting and retrieval of information to and from the AWT clipboard</td>
* <td>This would allow malfeasant code to share
* potentially sensitive or confidential information.</td>
* </tr>
*
* <tr>
* <td>accessEventQueue</td>
* <td>Access to the AWT event queue</td>
* <td>After retrieving the AWT event queue,
* malicious code may peek at and even remove existing events
* from its event queue, as well as post bogus events which may purposefully
* cause the application or applet to misbehave in an insecure manner.</td>
* </tr>
*
* <tr>
* <td>accessSystemTray</td>
* <td>Access to the AWT SystemTray instance</td>
* <td>This would allow malicious code to add tray icons to the system tray.
* First, such an icon may look like the icon of some known application
* (such as a firewall or anti-virus) and order a user to do something unsafe
* (with help of balloon messages). Second, the system tray may be glutted with
* tray icons so that no one could add a tray icon anymore.</td>
* </tr>
*
* <tr>
* <td>createRobot</td>
* <td>Create java.awt.Robot objects</td>
* <td>The java.awt.Robot object allows code to generate native-level
* mouse and keyboard events as well as read the screen. It could allow
* malicious code to control the system, run other programs, read the
* display, and deny mouse and keyboard access to the user.</td>
* </tr>
*
* <tr>
* <td>fullScreenExclusive</td>
* <td>Enter full-screen exclusive mode</td>
* <td>Entering full-screen exclusive mode allows direct access to
* low-level graphics card memory. This could be used to spoof the
* system, since the program is in direct control of rendering. Depending on
* the implementation, the security warning may not be shown for the windows
* used to enter the full-screen exclusive mode (assuming that the {@code
* fullScreenExclusive} permission has been granted to this application). Note
* that this behavior does not mean that the {@code
* showWindowWithoutWarningBanner} permission will be automatically granted to
* the application which has the {@code fullScreenExclusive} permission:
* non-full-screen windows will continue to be shown with the security
* warning.</td>
* </tr>
*
* <tr>
* <td>listenToAllAWTEvents</td>
* <td>Listen to all AWT events, system-wide</td>
* <td>After adding an AWT event listener,
* malicious code may scan all AWT events dispatched in the system,
* allowing it to read all user input (such as passwords). Each
* AWT event listener is called from within the context of that
* event queue's EventDispatchThread, so if the accessEventQueue
* permission is also enabled, malicious code could modify the
* contents of AWT event queues system-wide, causing the application
* or applet to misbehave in an insecure manner.</td>
* </tr>
*
* <tr>
* <td>readDisplayPixels</td>
* <td>Readback of pixels from the display screen</td>
* <td>Interfaces such as the java.awt.Composite interface or the
* java.awt.Robot class allow arbitrary code to examine pixels on the
* display enable malicious code to snoop on the activities of the user.</td>
* </tr>
*
* <tr>
* <td>replaceKeyboardFocusManager</td>
* <td>Sets the {@code KeyboardFocusManager} for
* a particular thread.
* <td>When {@code SecurityManager} is installed, the invoking
* thread must be granted this permission in order to replace
* the current {@code KeyboardFocusManager}. If permission
* is not granted, a {@code SecurityException} will be thrown.
* </tr>
*
* <tr>
* <td>setAppletStub</td>
* <td>Setting the stub which implements Applet container services</td>
* <td>Malicious code could set an applet's stub and result in unexpected
* behavior or denial of service to an applet.</td>
* </tr>
*
* <tr>
* <td>setWindowAlwaysOnTop</td>
* <td>Setting always-on-top property of the window: {@link Window#setAlwaysOnTop}</td>
* <td>The malicious window might make itself look and behave like a real full desktop, so that
* information entered by the unsuspecting user is captured and subsequently misused </td>
* </tr>
*
* <tr>
* <td>showWindowWithoutWarningBanner</td>
* <td>Display of a window without also displaying a banner warning
* that the window was created by an applet</td>
* <td>Without this warning,
* an applet may pop up windows without the user knowing that they
* belong to an applet. Since users may make security-sensitive
* decisions based on whether or not the window belongs to an applet
* (entering a username and password into a dialog box, for example),
* disabling this warning banner may allow applets to trick the user
* into entering such information.</td>
* </tr>
*
* <tr>
* <td>toolkitModality</td>
* <td>Creating {@link Dialog.ModalityType#TOOLKIT_MODAL TOOLKIT_MODAL} dialogs
* and setting the {@link Dialog.ModalExclusionType#TOOLKIT_EXCLUDE
* TOOLKIT_EXCLUDE} window property.</td>
* <td>When a toolkit-modal dialog is shown from an applet, it blocks all other
* applets in the browser. When launching applications from Java Web Start,
* its windows (such as the security dialog) may also be blocked by toolkit-modal
* dialogs, shown from these applications.</td>
* </tr>
*
* <tr>
* <td>watchMousePointer</td>
* <td>Getting the information about the mouse pointer position at any
* time</td>
* <td>Constantly watching the mouse pointer,
* an applet can make guesses about what the user is doing, i.e. moving
* the mouse to the lower left corner of the screen most likely means that
* the user is about to launch an application. If a virtual keypad is used
* so that keyboard is emulated using the mouse, an applet may guess what
* is being typed.</td>
* </tr>
* <tr>
* <th scope="row">accessClipboard
* <td>Posting and retrieval of information to and from the AWT clipboard
* <td>This would allow malfeasant code to share potentially sensitive or
* confidential information.
* <tr>
* <th scope="row">accessEventQueue
* <td>Access to the AWT event queue
* <td>After retrieving the AWT event queue, malicious code may peek at and
* even remove existing events from its event queue, as well as post bogus
* events which may purposefully cause the application or applet to
* misbehave in an insecure manner.
* <tr>
* <th scope="row">accessSystemTray
* <td>Access to the AWT SystemTray instance
* <td>This would allow malicious code to add tray icons to the system tray.
* First, such an icon may look like the icon of some known application
* (such as a firewall or anti-virus) and order a user to do something
* unsafe (with help of balloon messages). Second, the system tray may be
* glutted with tray icons so that no one could add a tray icon anymore.
* <tr>
* <th scope="row">createRobot
* <td>Create java.awt.Robot objects
* <td>The java.awt.Robot object allows code to generate native-level mouse
* and keyboard events as well as read the screen. It could allow malicious
* code to control the system, run other programs, read the display, and
* deny mouse and keyboard access to the user.
* <tr>
* <th scope="row">fullScreenExclusive
* <td>Enter full-screen exclusive mode
* <td>Entering full-screen exclusive mode allows direct access to low-level
* graphics card memory. This could be used to spoof the system, since the
* program is in direct control of rendering. Depending on the
* implementation, the security warning may not be shown for the windows
* used to enter the full-screen exclusive mode (assuming that the
* {@code fullScreenExclusive} permission has been granted to this
* application). Note that this behavior does not mean that the
* {@code showWindowWithoutWarningBanner} permission will be automatically
* granted to the application which has the {@code fullScreenExclusive}
* permission: non-full-screen windows will continue to be shown with the
* security warning.
* <tr>
* <th scope="row">listenToAllAWTEvents
* <td>Listen to all AWT events, system-wide
* <td>After adding an AWT event listener, malicious code may scan all AWT
* events dispatched in the system, allowing it to read all user input (such
* as passwords). Each AWT event listener is called from within the context
* of that event queue's EventDispatchThread, so if the accessEventQueue
* permission is also enabled, malicious code could modify the contents of
* AWT event queues system-wide, causing the application or applet to
* misbehave in an insecure manner.
* <tr>
* <th scope="row">readDisplayPixels
* <td>Readback of pixels from the display screen
* <td>Interfaces such as the java.awt.Composite interface or the
* java.awt.Robot class allow arbitrary code to examine pixels on the
* display enable malicious code to snoop on the activities of the user.
* <tr>
* <th scope="row">replaceKeyboardFocusManager
* <td>Sets the {@code KeyboardFocusManager} for a particular thread.
* <td>When {@code SecurityManager} is installed, the invoking thread must
* be granted this permission in order to replace the current
* {@code KeyboardFocusManager}. If permission is not granted, a
* {@code SecurityException} will be thrown.
* <tr>
* <th scope="row">setAppletStub
* <td>Setting the stub which implements Applet container services
* <td>Malicious code could set an applet's stub and result in unexpected
* behavior or denial of service to an applet.
* <tr>
* <th scope="row">setWindowAlwaysOnTop
* <td>Setting always-on-top property of the window:
* {@link Window#setAlwaysOnTop}
* <td>The malicious window might make itself look and behave like a real
* full desktop, so that information entered by the unsuspecting user is
* captured and subsequently misused
* <tr>
* <th scope="row">showWindowWithoutWarningBanner
* <td>Display of a window without also displaying a banner warning that the
* window was created by an applet
* <td>Without this warning, an applet may pop up windows without the user
* knowing that they belong to an applet. Since users may make
* security-sensitive decisions based on whether or not the window belongs
* to an applet (entering a username and password into a dialog box, for
* example), disabling this warning banner may allow applets to trick the
* user into entering such information.
* <tr>
* <th scope="row">toolkitModality
* <td>Creating {@link Dialog.ModalityType#TOOLKIT_MODAL TOOLKIT_MODAL}
* dialogs and setting the
* {@link Dialog.ModalExclusionType#TOOLKIT_EXCLUDE TOOLKIT_EXCLUDE} window
* property.
* <td>When a toolkit-modal dialog is shown from an applet, it blocks all
* other applets in the browser. When launching applications from Java Web
* Start, its windows (such as the security dialog) may also be blocked by
* toolkit-modal dialogs, shown from these applications.
* <tr>
* <th scope="row">watchMousePointer
* <td>Getting the information about the mouse pointer position at any time
* <td>Constantly watching the mouse pointer, an applet can make guesses
* about what the user is doing, i.e. moving the mouse to the lower left
* corner of the screen most likely means that the user is about to launch
* an application. If a virtual keypad is used so that keyboard is emulated
* using the mouse, an applet may guess what is being typed.
* </tbody>
* </table>
*
@ -195,11 +167,9 @@ import java.security.BasicPermission;
* @see java.security.PermissionCollection
* @see java.lang.SecurityManager
*
*
* @author Marianne Mueller
* @author Roland Schemers
*/
public final class AWTPermission extends BasicPermission {
/** use serialVersionUID from the Java 2 platform for interoperability */

View File

@ -72,22 +72,40 @@ import sun.java2d.SunCompositeContext;
* The following factors are used in the description of the blending
* equation in the Porter and Duff paper:
*
* <blockquote>
* <table class="borderless">
* <table class="striped">
* <caption style="display:none">Factors</caption>
* <tr><th style="text-align:left">Factor&nbsp;&nbsp;<th style="text-align:left">Definition
* <tr><td><em>A<sub>s</sub></em><td>the alpha component of the source pixel
* <tr><td><em>C<sub>s</sub></em><td>a color component of the source pixel in premultiplied form
* <tr><td><em>A<sub>d</sub></em><td>the alpha component of the destination pixel
* <tr><td><em>C<sub>d</sub></em><td>a color component of the destination pixel in premultiplied form
* <tr><td><em>F<sub>s</sub></em><td>the fraction of the source pixel that contributes to the output
* <tr><td><em>F<sub>d</sub></em><td>the fraction of the destination pixel that contributes
* to the output
* <tr><td><em>A<sub>r</sub></em><td>the alpha component of the result
* <tr><td><em>C<sub>r</sub></em><td>a color component of the result in premultiplied form
* <thead>
* <tr>
* <th scope="col">Factor
* <th scope="col">Definition
* </thead>
* <tbody>
* <tr>
* <th scope="row"><em>A<sub>s</sub></em>
* <td>the alpha component of the source pixel
* <tr>
* <th scope="row"><em>C<sub>s</sub></em>
* <td>a color component of the source pixel in premultiplied form
* <tr>
* <th scope="row"><em>A<sub>d</sub></em>
* <td>the alpha component of the destination pixel
* <tr>
* <th scope="row"><em>C<sub>d</sub></em>
* <td>a color component of the destination pixel in premultiplied form
* <tr>
* <th scope="row"><em>F<sub>s</sub></em>
* <td>the fraction of the source pixel that contributes to the output
* <tr>
* <th scope="row"><em>F<sub>d</sub></em>
* <td>the fraction of the destination pixel that contributes to the output
* <tr>
* <th scope="row"><em>A<sub>r</sub></em>
* <td>the alpha component of the result
* <tr>
* <th scope="row"><em>C<sub>r</sub></em>
* <td>a color component of the result in premultiplied form
* </tbody>
* </table>
* </blockquote>
*
* <p>
* Using these factors, Porter and Duff define 12 ways of choosing
* the blending factors <em>F<sub>s</sub></em> and <em>F<sub>d</sub></em> to
@ -113,19 +131,37 @@ import sun.java2d.SunCompositeContext;
* The following factors will be used to discuss our extensions to
* the blending equation in the Porter and Duff paper:
*
* <blockquote>
* <table class="borderless">
* <table class="striped">
* <caption style="display:none">Factors</caption>
* <tr><th style="text-align:left">Factor&nbsp;&nbsp;<th style="text-align:left">Definition
* <tr><td><em>C<sub>sr</sub></em> <td>one of the raw color components of the source pixel
* <tr><td><em>C<sub>dr</sub></em> <td>one of the raw color components of the destination pixel
* <tr><td><em>A<sub>ac</sub></em> <td>the "extra" alpha component from the AlphaComposite instance
* <tr><td><em>A<sub>sr</sub></em> <td>the raw alpha component of the source pixel
* <tr><td><em>A<sub>dr</sub></em><td>the raw alpha component of the destination pixel
* <tr><td><em>A<sub>df</sub></em> <td>the final alpha component stored in the destination
* <tr><td><em>C<sub>df</sub></em> <td>the final raw color component stored in the destination
* <thead>
* <tr>
* <th scope="col">Factor
* <th scope="col">Definition
* </thead>
* <tbody>
* <tr>
* <th scope="row"><em>C<sub>sr</sub></em>
* <td>one of the raw color components of the source pixel
* <tr>
* <th scope="row"><em>C<sub>dr</sub></em>
* <td>one of the raw color components of the destination pixel
* <tr>
* <th scope="row"><em>A<sub>ac</sub></em>
* <td>the "extra" alpha component from the AlphaComposite instance
* <tr>
* <th scope="row"><em>A<sub>sr</sub></em>
* <td>the raw alpha component of the source pixel
* <tr>
* <th scope="row"><em>A<sub>dr</sub></em>
* <td>the raw alpha component of the destination pixel
* <tr>
* <th scope="row"><em>A<sub>df</sub></em>
* <td>the final alpha component stored in the destination
* <tr>
* <th scope="row"><em>C<sub>df</sub></em>
* <td>the final raw color component stored in the destination
* </tbody>
* </table>
*</blockquote>
*
* <h3>Preparing Inputs</h3>
*

View File

@ -7247,28 +7247,24 @@ public abstract class Component implements ImageObserver, MenuContainer,
* <caption>Recommended default values for a Component's focus traversal
* keys</caption>
* <thead>
* <tr>
* <th>Identifier</th>
* <th>Meaning</th>
* <th>Default</th>
* </tr>
* <tr>
* <th scope="col">Identifier
* <th scope="col">Meaning
* <th scope="col">Default
* </thead>
* <tbody>
* <tr>
* <td>KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS</td>
* <td>Normal forward keyboard traversal</td>
* <td>TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED</td>
* </tr>
* <tr>
* <td>KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS</td>
* <td>Normal reverse keyboard traversal</td>
* <td>SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED</td>
* </tr>
* <tr>
* <td>KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS</td>
* <td>Go up one focus traversal cycle</td>
* <td>none</td>
* </tr>
* <tr>
* <th scope="row">KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
* <td>Normal forward keyboard traversal
* <td>TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED
* <tr>
* <th scope="row">KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
* <td>Normal reverse keyboard traversal
* <td>SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED
* <tr>
* <th scope="row">KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
* <td>Go up one focus traversal cycle
* <td>none
* </tbody>
* </table>
*

View File

@ -3069,33 +3069,28 @@ public class Container extends Component {
* <caption>Recommended default values for a Container's focus traversal
* keys</caption>
* <thead>
* <tr>
* <th>Identifier</th>
* <th>Meaning</th>
* <th>Default</th>
* </tr>
* <tr>
* <th scope="col">Identifier
* <th scope="col">Meaning
* <th scope="col">Default
* </thead>
* <tbody>
* <tr>
* <td>KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS</td>
* <td>Normal forward keyboard traversal</td>
* <td>TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED</td>
* </tr>
* <tr>
* <td>KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS</td>
* <td>Normal reverse keyboard traversal</td>
* <td>SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED</td>
* </tr>
* <tr>
* <td>KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS</td>
* <td>Go up one focus traversal cycle</td>
* <td>none</td>
* </tr>
* <tr>
* <td>KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS</td>
* <td>Go down one focus traversal cycle</td>
* <td>none</td>
* </tr>
* <tr>
* <th scope="row">KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
* <td>Normal forward keyboard traversal
* <td>TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED
* <tr>
* <th scope="row">KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
* <td>Normal reverse keyboard traversal
* <td>SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED
* <tr>
* <th scope="row">KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
* <td>Go up one focus traversal cycle
* <td>none
* <tr>
* <th scope="row">KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
* <td>Go down one focus traversal cycle
* <td>none
* </tbody>
* </table>
*

View File

@ -680,33 +680,28 @@ public class EventQueue {
* <table class="striped">
* <caption>Event types, source types, and dispatch methods</caption>
* <thead>
* <tr>
* <th>Event Type</th>
* <th>Source Type</th>
* <th>Dispatched To</th>
* </tr>
* <tr>
* <th scope="col">Event Type
* <th scope="col">Source Type
* <th scope="col">Dispatched To
* </thead>
* <tbody>
* <tr>
* <td>ActiveEvent</td>
* <td>Any</td>
* <td>event.dispatch()</td>
* </tr>
* <tr>
* <td>Other</td>
* <td>Component</td>
* <td>source.dispatchEvent(AWTEvent)</td>
* </tr>
* <tr>
* <td>Other</td>
* <td>MenuComponent</td>
* <td>source.dispatchEvent(AWTEvent)</td>
* </tr>
* <tr>
* <td>Other</td>
* <td>Other</td>
* <td>No action (ignored)</td>
* </tr>
* <tr>
* <th scope="row">ActiveEvent
* <td>Any
* <td>event.dispatch()
* <tr>
* <th scope="row">Other
* <td>Component
* <td>source.dispatchEvent(AWTEvent)
* <tr>
* <th scope="row">Other
* <td>MenuComponent
* <td>source.dispatchEvent(AWTEvent)
* <tr>
* <th scope="row">Other
* <td>Other
* <td>No action (ignored)
* </tbody>
* </table>
*

View File

@ -1042,35 +1042,30 @@ public abstract class KeyboardFocusManager
* <table class="striped">
* <caption>Recommended default values for focus traversal keys</caption>
* <thead>
* <tr>
* <th>Identifier</th>
* <th>Meaning</th>
* <th>Default</th>
* </tr>
* <tr>
* <th scope="col">Identifier
* <th scope="col">Meaning
* <th scope="col">Default
* </thead>
* <tbody>
* <tr>
* <td>{@code KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS}</td>
* <td>Normal forward keyboard traversal</td>
* <td>{@code TAB} on {@code KEY_PRESSED},
* {@code CTRL-TAB} on {@code KEY_PRESSED}</td>
* </tr>
* <tr>
* <td>{@code KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS}</td>
* <td>Normal reverse keyboard traversal</td>
* <td>{@code SHIFT-TAB} on {@code KEY_PRESSED},
* {@code CTRL-SHIFT-TAB} on {@code KEY_PRESSED}</td>
* </tr>
* <tr>
* <td>{@code KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS}</td>
* <td>Go up one focus traversal cycle</td>
* <td>none</td>
* </tr>
* <tr>
* <td>{@code KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS}</td>
* <td>Go down one focus traversal cycle</td>
* <td>none</td>
* </tr>
* <tr>
* <th scope="row">{@code KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS}
* <td>Normal forward keyboard traversal
* <td>{@code TAB} on {@code KEY_PRESSED}, {@code CTRL-TAB} on
* {@code KEY_PRESSED}
* <tr>
* <th scope="row">{@code KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS}
* <td>Normal reverse keyboard traversal
* <td>{@code SHIFT-TAB} on {@code KEY_PRESSED}, {@code CTRL-SHIFT-TAB}
* on {@code KEY_PRESSED}
* <tr>
* <th scope="row">{@code KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS}
* <td>Go up one focus traversal cycle
* <td>none
* <tr>
* <th scope="row">{@code KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS}
* <td>Go down one focus traversal cycle
* <td>none
* </tbody>
* </table>
*

View File

@ -299,58 +299,44 @@ public class Scrollbar extends Component implements Adjustable, Accessible {
* <table class="striped">
* <caption>Scrollbar default properties</caption>
* <thead>
* <tr>
* <th>Property</th>
* <th>Description</th>
* <th>Default Value</th>
* </tr>
* <tr>
* <th scope="col">Property
* <th scope="col">Description
* <th scope="col">Default Value
* </thead>
* <tbody>
* <tr>
* <td>orientation</td>
* <td>indicates whether the scroll bar is vertical
* <br>or horizontal</td>
* <td>{@code Scrollbar.VERTICAL}</td>
* </tr>
* <tr>
* <td>value</td>
* <td>value which controls the location
* <br>of the scroll bar's bubble</td>
* <td>0</td>
* </tr>
* <tr>
* <td>visible amount</td>
* <td>visible amount of the scroll bar's range,
* <br>typically represented by the size of the
* <br>scroll bar's bubble</td>
* <td>10</td>
* </tr>
* <tr>
* <td>minimum</td>
* <td>minimum value of the scroll bar</td>
* <td>0</td>
* </tr>
* <tr>
* <td>maximum</td>
* <td>maximum value of the scroll bar</td>
* <td>100</td>
* </tr>
* <tr>
* <td>unit increment</td>
* <td>amount the value changes when the
* <br>Line Up or Line Down key is pressed,
* <br>or when the end arrows of the scrollbar
* <br>are clicked </td>
* <td>1</td>
* </tr>
* <tr>
* <td>block increment</td>
* <td>amount the value changes when the
* <br>Page Up or Page Down key is pressed,
* <br>or when the scrollbar track is clicked
* <br>on either side of the bubble </td>
* <td>10</td>
* </tr>
* <tr>
* <th scope="row">orientation
* <td>indicates whether the scroll bar is vertical or horizontal
* <td>{@code Scrollbar.VERTICAL}
* <tr>
* <th scope="row">value
* <td>value which controls the location of the scroll bar's bubble
* <td>0
* <tr>
* <th scope="row">visible amount
* <td>visible amount of the scroll bar's range, typically represented
* by the size of the scroll bar's bubble
* <td>10
* <tr>
* <th scope="row">minimum
* <td>minimum value of the scroll bar
* <td>0
* <tr>
* <th scope="row">maximum
* <td>maximum value of the scroll bar
* <td>100
* <tr>
* <th scope="row">unit increment
* <td>amount the value changes when the Line Up or Line Down key is
* pressed, or when the end arrows of the scrollbar are clicked
* <td>1
* <tr>
* <th scope="row">block increment
* <td>amount the value changes when the Page Up or Page Down key is
* pressed, or when the scrollbar track is clicked<br>on either side of
* the bubble
* <td>10
* </tbody>
* </table>
*

View File

@ -371,28 +371,26 @@ public class SystemTray {
* <table class="striped">
* <caption>SystemTray properties</caption>
* <thead>
* <tr>
* <th>Property</th>
* <th>Description</th>
* </tr>
* <tr>
* <th scope="col">Property
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>{@code trayIcons}</td>
* <td>The {@code SystemTray}'s array of {@code TrayIcon} objects.
* The array is accessed via the {@link #getTrayIcons} method.<br>
* This property is changed when a tray icon is added to (or removed
* from) the system tray.<br> For example, this property is changed
* when the system tray becomes unavailable on the desktop<br>
* and the tray icons are automatically removed.</td>
* </tr>
* <tr>
* <td>{@code systemTray}</td>
* <td>This property contains {@code SystemTray} instance when the system tray
* is available or {@code null} otherwise.<br> This property is changed
* when the system tray becomes available or unavailable on the desktop.<br>
* The property is accessed by the {@link #getSystemTray} method.</td>
* </tr>
* <tr>
* <th scope="row">{@code trayIcons}
* <td>The {@code SystemTray}'s array of {@code TrayIcon} objects. The
* array is accessed via the {@link #getTrayIcons} method. This property
* is changed when a tray icon is added to (or removed from) the system
* tray. For example, this property is changed when the system tray
* becomes unavailable on the desktop and the tray icons are
* automatically removed.
* <tr>
* <th scope="row">{@code systemTray}
* <td>This property contains {@code SystemTray} instance when the
* system tray is available or {@code null} otherwise. This property is
* changed when the system tray becomes available or unavailable on the
* desktop. The property is accessed by the {@link #getSystemTray}
* method.
* </tbody>
* </table>
* <p>

View File

@ -108,39 +108,36 @@ import jdk.internal.misc.SharedSecrets;
*
* <table class="plain">
* <caption>NumericShaper constants precedence</caption>
* <thead>
* <tr>
* <th class="TableHeadingColor">Unicode Range</th>
* <th class="TableHeadingColor">{@code NumericShaper} Constants</th>
* <th class="TableHeadingColor">Precedence</th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td rowspan="2">Arabic</td>
* <td>{@link NumericShaper#ARABIC NumericShaper.ARABIC}<br>
* {@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}</td>
* <td>{@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}</td>
* </tr>
* <tr>
* <td>{@link NumericShaper.Range#ARABIC}<br>
* {@link NumericShaper.Range#EASTERN_ARABIC}</td>
* <td>{@link NumericShaper.Range#EASTERN_ARABIC}</td>
* </tr>
* </tbody>
* <tbody>
* <tr>
* <td>Tai Tham</td>
* <td>{@link NumericShaper.Range#TAI_THAM_HORA}<br>
* {@link NumericShaper.Range#TAI_THAM_THAM}</td>
* <td>{@link NumericShaper.Range#TAI_THAM_THAM}</td>
* </tr>
* </tbody>
* <thead>
* <tr>
* <th scope="col">Unicode Range
* <th scope="col">{@code NumericShaper} Constants
* <th scope="col">Precedence
* </thead>
* <tbody>
* <tr>
* <th scope="row" rowspan="2">Arabic
* <td>{@link NumericShaper#ARABIC NumericShaper.ARABIC}
* <br>
* {@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}
* <td>{@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}
* </tr>
* <tr>
* <th scope="row">{@link NumericShaper.Range#ARABIC}
* <br>
* {@link NumericShaper.Range#EASTERN_ARABIC}
* <td>{@link NumericShaper.Range#EASTERN_ARABIC}
* <tr>
* <th scope="row">Tai Tham
* <td>{@link NumericShaper.Range#TAI_THAM_HORA}
* <br>
* {@link NumericShaper.Range#TAI_THAM_THAM}
* <td>{@link NumericShaper.Range#TAI_THAM_THAM}
* </tbody>
* </table>
*
* @since 1.4
*/
public final class NumericShaper implements java.io.Serializable {
// For access from java.text.Bidi

View File

@ -96,159 +96,141 @@ import jdk.internal.misc.SharedSecrets;
* </UL>
*
* <h4>Summary of attributes</h4>
* <table style="float:center;width:95%" class="striped">
* <caption>Key, value type, principal constants, and
* default value behavior of all TextAttributes</caption>
*
* <table style="width:95%;margin: 0px auto" class="striped">
* <caption>Key, value type, principal constants, and default value behavior of
* all TextAttributes</caption>
* <thead>
* <tr>
* <th valign="TOP" style="text-align:center">Key</th>
* <th valign="TOP" style="text-align:center">Value Type</th>
* <th valign="TOP" style="text-align:center">Principal Constants</th>
* <th valign="TOP" style="text-align:center">Default Value</th>
* </tr>
* <tr>
* <th scope="col">Key
* <th scope="col">Value Type
* <th scope="col">Principal Constants
* <th scope="col">Default Value
* </thead>
* <tbody>
* <tr>
* <td valign="TOP">{@link #FAMILY}</td>
* <td valign="TOP">String</td>
* <td valign="TOP">See Font {@link java.awt.Font#DIALOG DIALOG},
* {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},<br> {@link java.awt.Font#SERIF SERIF},
* {@link java.awt.Font#SANS_SERIF SANS_SERIF}, and {@link java.awt.Font#MONOSPACED MONOSPACED}.
* </td>
* <td valign="TOP">"Default" (use platform default)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #WEIGHT}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">WEIGHT_REGULAR, WEIGHT_BOLD</td>
* <td valign="TOP">WEIGHT_REGULAR</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #WIDTH}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">WIDTH_CONDENSED, WIDTH_REGULAR,<br>WIDTH_EXTENDED</td>
* <td valign="TOP">WIDTH_REGULAR</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #POSTURE}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">POSTURE_REGULAR, POSTURE_OBLIQUE</td>
* <td valign="TOP">POSTURE_REGULAR</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #SIZE}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">none</td>
* <td valign="TOP">12.0</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #TRANSFORM}</td>
* <td valign="TOP">{@link TransformAttribute}</td>
* <td valign="TOP">See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}</td>
* <td valign="TOP">TransformAttribute.IDENTITY</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #SUPERSCRIPT}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB</td>
* <td valign="TOP">0 (use the standard glyphs and metrics)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #FONT}</td>
* <td valign="TOP">{@link java.awt.Font}</td>
* <td valign="TOP">none</td>
* <td valign="TOP">null (do not override font resolution)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #CHAR_REPLACEMENT}</td>
* <td valign="TOP">{@link GraphicAttribute}</td>
* <td valign="TOP">none</td>
* <td valign="TOP">null (draw text using font glyphs)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #FOREGROUND}</td>
* <td valign="TOP">{@link java.awt.Paint}</td>
* <td valign="TOP">none</td>
* <td valign="TOP">null (use current graphics paint)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #BACKGROUND}</td>
* <td valign="TOP">{@link java.awt.Paint}</td>
* <td valign="TOP">none</td>
* <td valign="TOP">null (do not render background)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #UNDERLINE}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">UNDERLINE_ON</td>
* <td valign="TOP">-1 (do not render underline)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #STRIKETHROUGH}</td>
* <td valign="TOP">Boolean</td>
* <td valign="TOP">STRIKETHROUGH_ON</td>
* <td valign="TOP">false (do not render strikethrough)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #RUN_DIRECTION}</td>
* <td valign="TOP">Boolean</td>
* <td valign="TOP">RUN_DIRECTION_LTR<br>RUN_DIRECTION_RTL</td>
* <td valign="TOP">null (use {@link java.text.Bidi} standard default)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #BIDI_EMBEDDING}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">none</td>
* <td valign="TOP">0 (use base line direction)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #JUSTIFICATION}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">JUSTIFICATION_FULL</td>
* <td valign="TOP">JUSTIFICATION_FULL</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #INPUT_METHOD_HIGHLIGHT}</td>
* <td valign="TOP">{@link java.awt.im.InputMethodHighlight},<br>{@link java.text.Annotation}</td>
* <td valign="TOP">(see class)</td>
* <td valign="TOP">null (do not apply input highlighting)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #INPUT_METHOD_UNDERLINE}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">UNDERLINE_LOW_ONE_PIXEL,<br>UNDERLINE_LOW_TWO_PIXEL</td>
* <td valign="TOP">-1 (do not render underline)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #SWAP_COLORS}</td>
* <td valign="TOP">Boolean</td>
* <td valign="TOP">SWAP_COLORS_ON</td>
* <td valign="TOP">false (do not swap colors)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #NUMERIC_SHAPING}</td>
* <td valign="TOP">{@link java.awt.font.NumericShaper}</td>
* <td valign="TOP">none</td>
* <td valign="TOP">null (do not shape digits)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #KERNING}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">KERNING_ON</td>
* <td valign="TOP">0 (do not request kerning)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #LIGATURES}</td>
* <td valign="TOP">Integer</td>
* <td valign="TOP">LIGATURES_ON</td>
* <td valign="TOP">0 (do not form optional ligatures)</td>
* </tr>
* <tr>
* <td valign="TOP">{@link #TRACKING}</td>
* <td valign="TOP">Number</td>
* <td valign="TOP">TRACKING_LOOSE, TRACKING_TIGHT</td>
* <td valign="TOP">0 (do not add tracking)</td>
* </tr>
* <tr>
* <th scope="row">{@link #FAMILY}
* <td>String
* <td>See Font {@link java.awt.Font#DIALOG DIALOG},
* {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},
* <br>
* {@link java.awt.Font#SERIF SERIF},
* {@link java.awt.Font#SANS_SERIF SANS_SERIF}, and
* {@link java.awt.Font#MONOSPACED MONOSPACED}.
* <td>"Default" (use platform default)
* <tr>
* <th scope="row">{@link #WEIGHT}
* <td>Number
* <td>WEIGHT_REGULAR, WEIGHT_BOLD
* <td>WEIGHT_REGULAR
* <tr>
* <th scope="row">{@link #WIDTH}
* <td>Number
* <td>WIDTH_CONDENSED, WIDTH_REGULAR,<br>WIDTH_EXTENDED
* <td>WIDTH_REGULAR
* <tr>
* <th scope="row">{@link #POSTURE}
* <td>Number
* <td>POSTURE_REGULAR, POSTURE_OBLIQUE
* <td>POSTURE_REGULAR
* <tr>
* <th scope="row">{@link #SIZE}
* <td>Number
* <td>none
* <td>12.0
* <tr>
* <th scope="row">{@link #TRANSFORM}
* <td>{@link TransformAttribute}
* <td>See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}
* <td>TransformAttribute.IDENTITY
* <tr>
* <th scope="row">{@link #SUPERSCRIPT}
* <td>Integer
* <td>SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB
* <td>0 (use the standard glyphs and metrics)
* <tr>
* <th scope="row">{@link #FONT}
* <td>{@link java.awt.Font}
* <td>none
* <td>null (do not override font resolution)
* <tr>
* <th scope="row">{@link #CHAR_REPLACEMENT}
* <td>{@link GraphicAttribute}
* <td>none
* <td>null (draw text using font glyphs)
* <tr>
* <th scope="row">{@link #FOREGROUND}
* <td>{@link java.awt.Paint}
* <td>none
* <td>null (use current graphics paint)
* <tr>
* <th scope="row">{@link #BACKGROUND}
* <td>{@link java.awt.Paint}
* <td>none
* <td>null (do not render background)
* <tr>
* <th scope="row">{@link #UNDERLINE}
* <td>Integer
* <td>UNDERLINE_ON
* <td>-1 (do not render underline)
* <tr>
* <th scope="row">{@link #STRIKETHROUGH}
* <td>Boolean
* <td>STRIKETHROUGH_ON
* <td>false (do not render strikethrough)
* <tr>
* <th scope="row">{@link #RUN_DIRECTION}
* <td>Boolean
* <td>RUN_DIRECTION_LTR<br>RUN_DIRECTION_RTL
* <td>null (use {@link java.text.Bidi} standard default)
* <tr>
* <th scope="row">{@link #BIDI_EMBEDDING}
* <td>Integer
* <td>none
* <td>0 (use base line direction)
* <tr>
* <th scope="row">{@link #JUSTIFICATION}
* <td>Number
* <td>JUSTIFICATION_FULL
* <td>JUSTIFICATION_FULL
* <tr>
* <th scope="row">{@link #INPUT_METHOD_HIGHLIGHT}
* <td>{@link java.awt.im.InputMethodHighlight},
* <br>
* {@link java.text.Annotation}
* <td>(see class)
* <td>null (do not apply input highlighting)
* <tr>
* <th scope="row">{@link #INPUT_METHOD_UNDERLINE}
* <td>Integer
* <td>UNDERLINE_LOW_ONE_PIXEL,<br>UNDERLINE_LOW_TWO_PIXEL
* <td>-1 (do not render underline)
* <tr>
* <th scope="row">{@link #SWAP_COLORS}
* <td>Boolean
* <td>SWAP_COLORS_ON
* <td>false (do not swap colors)
* <tr>
* <th scope="row">{@link #NUMERIC_SHAPING}
* <td>{@link java.awt.font.NumericShaper}
* <td>none
* <td>null (do not shape digits)
* <tr>
* <th scope="row">{@link #KERNING}
* <td>Integer
* <td>KERNING_ON
* <td>0 (do not request kerning)
* <tr>
* <th scope="row">{@link #LIGATURES}
* <td>Integer
* <td>LIGATURES_ON
* <td>0 (do not form optional ligatures)
* <tr>
* <th scope="row">{@link #TRACKING}
* <td>Number
* <td>TRACKING_LOOSE, TRACKING_TIGHT
* <td>0 (do not add tracking)
* </tr>
* </tbody>
* </table>
*

View File

@ -39,84 +39,77 @@
* <p>
* All implementations of javax.imageio provide the following standard image
* format plug-ins:
* <div>
* <table border=1 cellpadding=5 style="margin: 0px auto;" summary="Standard
* image format plug-ins">
* <tr>
* <th>&nbsp;</th><th>Reading</th><th>Writing</th><th>Notes</th>
* <th>Metadata</th>
* </tr>
*
* <table class="striped">
* <caption>Standard image format plug-ins</caption>
* <thead>
* <tr>
* <th scope="col">Image format
* <th scope="col">Reading
* <th scope="col">Writing
* <th scope="col">Notes
* <th scope="col">Metadata
* </thead>
* <tbody>
* <!-- BMP plugin -->
* <tr>
* <td><a href="https://msdn.microsoft.com/en-us/library/dd183391.aspx">
* BMP</a></td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'>none</td>
* <td align='center'><a href='metadata/doc-files/bmp_metadata.html'>BMP
* metadata format</a></td>
* </tr>
*
* <tr>
* <th scope="row">
* <a href="https://msdn.microsoft.com/en-us/library/dd183391.aspx">BMP</a>
* <td>yes
* <td>yes
* <td>none
* <td><a href='metadata/doc-files/bmp_metadata.html'>BMP
* metadata format</a>
* <!-- GIF plugin -->
* <tr>
* <td><a href="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF</a>
* </td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'><a href="#gif_plugin_notes">GIF plug-in notes</a>
* </td>
* <td align='center'><a href='metadata/doc-files/gif_metadata.html'>GIF
* metadata format</a></td>
* </tr>
*
* <tr>
* <th scope="row">
* <a href="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF</a>
* <td>yes
* <td>yes
* <td><a href="#gif_plugin_notes">GIF plug-in notes</a>
* <td><a href='metadata/doc-files/gif_metadata.html'>GIF
* metadata format</a>
* <!-- JPEG plugin -->
* <tr>
* <td><a href="http://www.jpeg.org">JPEG</a></td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'>none</td>
* <td align='center'><a href='metadata/doc-files/jpeg_metadata.html'>
* JPEG metadata format</a></td>
* </tr>
*
* <tr>
* <th scope="row"><a href="http://www.jpeg.org">JPEG</a>
* <td>yes
* <td>yes
* <td>none
* <td><a href='metadata/doc-files/jpeg_metadata.html'>
* JPEG metadata format</a>
* <!-- PNG plugin -->
* <tr>
* <td><a href="http://www.libpng.org/pub/png/spec/">PNG</a></td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'>none</td>
* <td align='center'><a href='metadata/doc-files/png_metadata.html'>PNG
* metadata format</a></td>
* </tr>
*
* <tr>
* <th scope="row"><a href="http://www.libpng.org/pub/png/spec/">PNG</a>
* <td>yes
* <td>yes
* <td>none
* <td><a href='metadata/doc-files/png_metadata.html'>PNG
* metadata format</a>
* <!-- TIFF plugin -->
* <tr>
* <td><a href="https://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf">
* TIFF</a></td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'><a href='metadata/doc-files/tiff_metadata.html#Reading'>
* TIFF plug-in notes</a></td>
* <td align='center'><a href='metadata/doc-files/tiff_metadata.html#StreamMetadata'>
* TIFF metadata format</a></td>
* </tr>
*
* <tr>
* <th scope="row">
* <a href="https://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf">
* TIFF</a>
* <td>yes
* <td>yes
* <td>
* <a href='metadata/doc-files/tiff_metadata.html#Reading'>TIFF plug-in
* notes</a>
* <td>
* <a href='metadata/doc-files/tiff_metadata.html#StreamMetadata'>TIFF
* metadata format</a>
* <!-- WBMP plugin -->
* <tr>
* <td><a href="http://www.wapforum.org/what/technical/SPEC-WAESpec-19990524.pdf">
* WBMP</a></td>
* <td align='center'>yes</td>
* <td align='center'>yes</td>
* <td align='center'>none</td>
* <td align='center'><a href='metadata/doc-files/wbmp_metadata.html'>
* WBMP metadata format</a></td>
* </tr>
* <tr>
* <th scope="row">
* <a href="http://www.wapforum.org/what/technical/SPEC-WAESpec-19990524.pdf">
* WBMP</a>
* <td>yes
* <td>yes
* <td>none
* <td><a href='metadata/doc-files/wbmp_metadata.html'>
* WBMP metadata format</a>
* </tbody>
* </table>
* </div>
* <BR>
* <BR>
* <BR>
*
* <h2> Standard Plug-in Notes</h2>
*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -54,13 +54,32 @@ import com.sun.imageio.plugins.bmp.BMPCompressionTypes;
* listed in the following
* table:
*
* <table border=1>
* <caption><b>Compression Types</b></caption>
* <tr><th>Type String</th> <th>Description</th> <th>Image Types</th></tr>
* <tr><td>BI_RGB</td> <td>Uncompressed RLE</td> <td>{@literal <= } 8-bits/sample</td></tr>
* <tr><td>BI_RLE8</td> <td>8-bit Run Length Encoding</td> <td>{@literal <=} 8-bits/sample</td></tr>
* <tr><td>BI_RLE4</td> <td>4-bit Run Length Encoding</td> <td>{@literal <=} 4-bits/sample</td></tr>
* <tr><td>BI_BITFIELDS</td> <td>Packed data</td> <td> 16 or 32 bits/sample</td></tr>
* <table class="striped">
* <caption>Compression Types</caption>
* <thead>
* <tr>
* <th scope="col">Type String
* <th scope="col">Description
* <th scope="col">Image Types
* </thead>
* <tbody>
* <tr>
* <th scope="row">BI_RGB
* <td>Uncompressed RLE
* <td>{@literal <= } 8-bits/sample
* <tr>
* <th scope="row">BI_RLE8
* <td>8-bit Run Length Encoding
* <td>{@literal <=} 8-bits/sample
* <tr>
* <th scope="row">BI_RLE4
* <td>4-bit Run Length Encoding
* <td>{@literal <=} 4-bits/sample
* <tr>
* <th scope="row">BI_BITFIELDS
* <td>Packed data
* <td>16 or 32 bits/sample
* </tbody>
* </table>
*/
public class BMPImageWriteParam extends ImageWriteParam {

View File

@ -40,221 +40,83 @@ import com.sun.imageio.plugins.tiff.TIFFIFD;
* TIFF data types are referred to by Java constants and mapped internally
* onto Java language data types and type names as follows:
*
* <br>
* <br>
* <table border="1">
* <table class="striped">
* <caption>TIFF Data Type to Java Data Type Mapping</caption>
*
* <tr>
* <th>
* <b>TIFF Data Type</b>
* </th>
* <th>
* <b>Java Constant</b>
* </th>
* <th>
* <b>Java Data Type</b>
* </th>
* <th>
* <b>Java Type Name</b>
* </th>
* </tr>
*
* <tr>
* <td>
* {@code BYTE}
* </td>
* <td>
* {@link TIFFTag#TIFF_BYTE}
* </td>
* <td>
* {@code byte}
* </td>
* <td>
* {@code "Byte"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code ASCII}
* </td>
* <td>
* {@link TIFFTag#TIFF_ASCII}
* </td>
* <td>
* {@code String}
* </td>
* <td>
* {@code "Ascii"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code SHORT}
* </td>
* <td>
* {@link TIFFTag#TIFF_SHORT}
* </td>
* <td>
* {@code char}
* </td>
* <td>
* {@code "Short"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code LONG}
* </td>
* <td>
* {@link TIFFTag#TIFF_LONG}
* </td>
* <td>
* {@code long}
* </td>
* <td>
* {@code "Long"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code RATIONAL}
* </td>
* <td>
* {@link TIFFTag#TIFF_RATIONAL}
* </td>
* <td>
* {@code long[2]} {numerator, denominator}
* </td>
* <td>
* {@code "Rational"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code SBYTE}
* </td>
* <td>
* {@link TIFFTag#TIFF_SBYTE}
* </td>
* <td>
* {@code byte}
* </td>
* <td>
* {@code "SByte"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code UNDEFINED}
* </td>
* <td>
* {@link TIFFTag#TIFF_UNDEFINED}
* </td>
* <td>
* {@code byte}
* </td>
* <td>
* {@code "Undefined"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code SSHORT}
* </td>
* <td>
* {@link TIFFTag#TIFF_SSHORT}
* </td>
* <td>
* {@code short}
* </td>
* <td>
* {@code "SShort"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code SLONG}
* </td>
* <td>
* {@link TIFFTag#TIFF_SLONG}
* </td>
* <td>
* {@code int}
* </td>
* <td>
* {@code "SLong"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code SRATIONAL}
* </td>
* <td>
* {@link TIFFTag#TIFF_SRATIONAL}
* </td>
* <td>
* {@code int[2]} {numerator, denominator}
* </td>
* <td>
* {@code "SRational"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code FLOAT}
* </td>
* <td>
* {@link TIFFTag#TIFF_FLOAT}
* </td>
* <td>
* {@code float}
* </td>
* <td>
* {@code "Float"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code DOUBLE}
* </td>
* <td>
* {@link TIFFTag#TIFF_DOUBLE}
* </td>
* <td>
* {@code double}
* </td>
* <td>
* {@code "Double"}
* </td>
* </tr>
*
* <tr>
* <td>
* {@code IFD}
* </td>
* <td>
* {@link TIFFTag#TIFF_IFD_POINTER}
* </td>
* <td>
* {@code long}
* </td>
* <td>
* {@code "IFDPointer"}
* </td>
* </tr>
*
* <thead>
* <tr>
* <th scope="col">TIFF Data Type
* <th scope="col">Java Constant
* <th scope="col">Java Data Type
* <th scope="col">Java Type Name
* </thead>
* <tbody>
* <tr>
* <th scope="row">{@code BYTE}
* <td>{@link TIFFTag#TIFF_BYTE}
* <td>{@code byte}
* <td>{@code "Byte"}
* <tr>
* <th scope="row">{@code ASCII}
* <td>{@link TIFFTag#TIFF_ASCII}
* <td>{@code String}
* <td>{@code "Ascii"}
* <tr>
* <th scope="row">{@code SHORT}
* <td>{@link TIFFTag#TIFF_SHORT}
* <td>{@code char}
* <td>{@code "Short"}
* <tr>
* <th scope="row">{@code LONG}
* <td>{@link TIFFTag#TIFF_LONG}
* <td>{@code long}
* <td>{@code "Long"}
* <tr>
* <th scope="row">{@code RATIONAL}
* <td>{@link TIFFTag#TIFF_RATIONAL}
* <td>{@code long[2]} {numerator, denominator}
* <td>{@code "Rational"}
* <tr>
* <th scope="row">{@code SBYTE}
* <td>{@link TIFFTag#TIFF_SBYTE}
* <td>{@code byte}
* <td>{@code "SByte"}
* <tr>
* <th scope="row">{@code UNDEFINED}
* <td>{@link TIFFTag#TIFF_UNDEFINED}
* <td>{@code byte}
* <td>{@code "Undefined"}
* <tr>
* <th scope="row">{@code SSHORT}
* <td>{@link TIFFTag#TIFF_SSHORT}
* <td>{@code short}
* <td>{@code "SShort"}
* <tr>
* <th scope="row">{@code SLONG}
* <td>{@link TIFFTag#TIFF_SLONG}
* <td>{@code int}
* <td>{@code "SLong"}
* <tr>
* <th scope="row">{@code SRATIONAL}
* <td>{@link TIFFTag#TIFF_SRATIONAL}
* <td>{@code int[2]} {numerator, denominator}
* <td>{@code "SRational"}
* <tr>
* <th scope="row">{@code FLOAT}
* <td>{@link TIFFTag#TIFF_FLOAT}
* <td>{@code float}
* <td>{@code "Float"}
* <tr>
* <th scope="row">{@code DOUBLE}
* <td>{@link TIFFTag#TIFF_DOUBLE}
* <td>{@code double}
* <td>{@code "Double"}
* <tr>
* <th scope="row">{@code IFD}
* <td>{@link TIFFTag#TIFF_IFD_POINTER}
* <td>{@code long}
* <td>{@code "IFDPointer"}
* </tr>
* </tbody>
* </table>
*
* @since 9

View File

@ -175,21 +175,21 @@ import java.io.Serializable;
* <caption>MIME-Types and their descriptions</caption>
* <thead>
* <tr>
* <th>MIME-Type
* <th>Description
* <th scope="col">MIME-Type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>{@code "text/plain"}
* <th scope="row">{@code "text/plain"}
* <td>Plain text in the default character set (US-ASCII)
* <tr>
* <td><code> "text/plain; charset=<i>xxx</i>"</code>
* <th scope="row"><code> "text/plain; charset=<i>xxx</i>"</code>
* <td>Plain text in character set <i>xxx</i>
* <tr>
* <td>{@code "text/html"}
* <th scope="row">{@code "text/html"}
* <td>HyperText Markup Language in the default character set (US-ASCII)
* <tr>
* <td><code> "text/html; charset=<i>xxx</i>"</code>
* <th scope="row"><code> "text/html; charset=<i>xxx</i>"</code>
* <td>HyperText Markup Language in character set <i>xxx</i>
* </tbody>
* </table>
@ -201,18 +201,18 @@ import java.io.Serializable;
* <caption>MIME-Types and their descriptions</caption>
* <thead>
* <tr>
* <th>MIME-Type
* <th>Description
* <th scope="col">MIME-Type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>{@code "application/pdf"}
* <th scope="row">{@code "application/pdf"}
* <td>Portable Document Format document
* <tr>
* <td>{@code "application/postscript"}
* <th scope="row">{@code "application/postscript"}
* <td>PostScript document
* <tr>
* <td>{@code "application/vnd.hp-PCL"}
* <th scope="row">{@code "application/vnd.hp-PCL"}
* <td>Printer Control Language document
* </tbody>
* </table>
@ -223,18 +223,18 @@ import java.io.Serializable;
* <caption>MIME-Types and their descriptions</caption>
* <thead>
* <tr>
* <th>MIME-Type
* <th>Description
* <th scope="col">MIME-Type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>{@code "image/gif"}
* <th scope="row">{@code "image/gif"}
* <td>Graphics Interchange Format image
* <tr>
* <td>{@code "image/jpeg"}
* <th scope="row">{@code "image/jpeg"}
* <td>Joint Photographic Experts Group image
* <tr>
* <td>{@code "image/png"}
* <th scope="row">{@code "image/png"}
* <td>Portable Network Graphics image
* </tbody>
* </table>
@ -245,12 +245,12 @@ import java.io.Serializable;
* <caption>MIME-Types and their descriptions</caption>
* <thead>
* <tr>
* <th>MIME-Type
* <th>Description
* <th scope="col">MIME-Type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>{@code "application/octet-stream"}
* <th scope="row">{@code "application/octet-stream"}
* <td>The print data format is unspecified (just an octet stream)
* </tbody>
* </table>

View File

@ -42,22 +42,23 @@ import javax.print.attribute.PrintRequestAttribute;
* The table below shows the effects of specifying a Chromaticity attribute of
* {@link #MONOCHROME MONOCHROME} or {@link #COLOR COLOR} for a monochrome or
* color document.
*
* <table class="striped">
* <caption>Shows effects of specifying {@code MONOCHROME} or {@code COLOR}
* Chromaticity attributes</caption>
* <thead>
* <tr>
* <th>Chromaticity<br>Attribute
* <th>Effect on<br>Monochrome Document
* <th>Effect on<br>Color Document
* <th scope="col">Chromaticity<br>Attribute
* <th scope="col">Effect on<br>Monochrome Document
* <th scope="col">Effect on<br>Color Document
* </thead>
* <tbody>
* <tr>
* <td>{@link #MONOCHROME MONOCHROME}
* <th scope="row">{@link #MONOCHROME MONOCHROME}
* <td>Printed as is, in monochrome
* <td>Printed in monochrome, with colors converted to shades of gray
* <tr>
* <td>{@link #COLOR COLOR}
* <th scope="row">{@link #COLOR COLOR}
* <td>Printed as is, in monochrome
* <td>Printed as is, in color
* </tbody>

View File

@ -69,40 +69,41 @@ import javax.print.attribute.PrintRequestAttribute;
* The size of a doc is computed based on the print data representation class as
* specified by the doc's {@link javax.print.DocFlavor DocFlavor}, as shown in
* the table below.
*
* <table class="striped">
* <caption>Table showing computation of doc sizes</caption>
* <thead>
* <tr>
* <th>Representation Class
* <th>Document Size
* <th scope="col">Representation Class
* <th scope="col">Document Size
* </thead>
* <tbody>
* <tr>
* <td>{@code byte[]}
* <th scope="row">{@code byte[]}
* <td>Length of the byte array
* <tr>
* <td>{@code java.io.InputStream}
* <th scope="row">{@code java.io.InputStream}
* <td>Number of bytes read from the stream
* <tr>
* <td>{@code char[]}
* <th scope="row">{@code char[]}
* <td>Length of the character array x 2
* <tr>
* <td>{@code java.lang.String}
* <th scope="row">{@code java.lang.String}
* <td>Length of the string x 2
* <tr>
* <td>{@code java.io.Reader}
* <th scope="row">{@code java.io.Reader}
* <td>Number of characters read from the stream x 2
* <tr>
* <td>{@code java.net.URL}
* <th scope="row">{@code java.net.URL}
* <td>Number of bytes read from the file at the given {@code URL} address
* <tr>
* <td>{@code java.awt.image.renderable.RenderableImage}
* <th scope="row">{@code java.awt.image.renderable.RenderableImage}
* <td>Implementation dependent&#42;
* <tr>
* <td>{@code java.awt.print.Printable}
* <th scope="row">{@code java.awt.print.Printable}
* <td>Implementation dependent&#42;
* <tr>
* <td>{@code java.awt.print.Pageable}
* <th scope="row">{@code java.awt.print.Pageable}
* <td>Implementation dependent&#42;
* </tbody>
* </table>

View File

@ -150,412 +150,437 @@
* attribute, the column marked "SupportedValuesAttribute" lists the
* supported-values attribute class, if any, with which a print service
* indicates the supported values for that attribute category.
* <table border=1 cellpadding=2 cellspacing=1 summary="Lists all printing
* attributes as described in above text">
* <tr style="background-color:#E5E5E5">
* <th valign="bottom">Attribute Class
* <th valign="bottom">Doc<br>Attribute
* <th valign="bottom">Print<br>Request<br>Attribute
* <th valign="bottom">Print<br>Job<br>Attribute
* <th valign="bottom">Print<br>Service<br>Attribute
* <th valign="bottom">SupportedValuesAttribute
*
* <table class="striped">
* <caption>Lists all printing attributes as described above</caption>
* <thead>
* <tr>
* <td><a href="Compression.html">Compression</a>
* <th scope="col">Attribute Class
* <th scope="col">Doc<br>Attribute
* <th scope="col">Print<br>Request<br>Attribute
* <th scope="col">Print<br>Job<br>Attribute
* <th scope="col">Print<br>Service<br>Attribute
* <th scope="col">SupportedValuesAttribute
* </thead>
* <tbody>
* <tr>
* <th scope="row"><a href="Compression.html">Compression</a>
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="DocumentName.html">DocumentName</a>
* <th scope="row"><a href="DocumentName.html">DocumentName</a>
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="Chromaticity.html">Chromaticity</a>
* <th scope="row"><a href="Chromaticity.html">Chromaticity</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="Copies.html">Copies</a>
* <th scope="row"><a href="Copies.html">Copies</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="CopiesSupported.html">CopiesSupported</a>
* <tr>
* <td><a href="Finishings.html">Finishings</a>
* <th scope="row"><a href="Finishings.html">Finishings</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobHoldUntil.html">JobHoldUntil</a>
* <th scope="row"><a href="JobHoldUntil.html">JobHoldUntil</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobImpressions.html">JobImpressions</a>
* <th scope="row"><a href="JobImpressions.html">JobImpressions</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="JobImpressionsSupported.html">JobImpressionsSupported</a>
* <tr>
* <td><a href="JobKOctets.html">JobKOctets</a>
* <th scope="row"><a href="JobKOctets.html">JobKOctets</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="JobKOctetsSupported.html">JobKOctetsSupported</a>
* <tr>
* <td><a href="JobMediaSheets.html">JobMediaSheets</a>
* <th scope="row"><a href="JobMediaSheets.html">JobMediaSheets</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="JobMediaSheetsSupported.html">JobMediaSheetsSupported</a>
* <tr>
* <td><a href="JobName.html">JobName</a>
* <th scope="row"><a href="JobName.html">JobName</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobPriority.html">JobPriority</a>
* <th scope="row"><a href="JobPriority.html">JobPriority</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="JobPrioritySupported.html">JobPrioritySupported</a>
* <tr>
* <td><a href="JobSheets.html">JobSheets</a>
* <th scope="row"><a href="JobSheets.html">JobSheets</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="Media.html">Media</a>
* <th scope="row"><a href="Media.html">Media</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="MediaSize.html">MediaSize</a>
* <th scope="row"><a href="MediaSize.html">MediaSize</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="MultipleDocumentHandling.html">MultipleDocumentHandling</a>
* <th scope="row"><a href="MultipleDocumentHandling.html">
* MultipleDocumentHandling</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="NumberUp.html">NumberUp</a>
* <th scope="row"><a href="NumberUp.html">NumberUp</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td><a href="NumberUpSupported.html">NumberUpSupported</a>
* <tr>
* <td><a href="OrientationRequested.html">OrientationRequested</a>
* <th scope="row"><a href="OrientationRequested.html">
* OrientationRequested</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="PageRanges.html">PageRanges</a>
* <th scope="row"><a href="PageRanges.html">PageRanges</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="PresentationDirection.html">PresentationDirection</a>
* <th scope="row"><a href="PresentationDirection.html">
* PresentationDirection</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="PrinterResolution.html">PrinterResolution</a>
* <th scope="row"><a href="PrinterResolution.html">PrinterResolution</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="PrintQuality.html">PrintQuality</a>
* <th scope="row"><a href="PrintQuality.html">PrintQuality</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="RequestingUserName.html">RequestingUserName</a>
* <th scope="row"><a href="RequestingUserName.html">RequestingUserName</a>
* <td>&nbsp;
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="SheetCollate.html">SheetCollate</a>
* <th scope="row"><a href="SheetCollate.html">SheetCollate</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="Sides.html">Sides</a>
* <th scope="row"><a href="Sides.html">Sides</a>
* <td align="center">X
* <td align="center">X
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="DateTimeAtCompleted.html">DateTimeAtCompleted</a>
* <th scope="row"><a href="DateTimeAtCompleted.html">
* DateTimeAtCompleted</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="DateTimeAtCreation.html">DateTimeAtCreation</a>
* <th scope="row"><a href="DateTimeAtCreation.html">DateTimeAtCreation</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="DateTimeAtProcessing.html">DateTimeAtProcessing</a>
* <th scope="row"><a href="DateTimeAtProcessing.html">
* DateTimeAtProcessing</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobImpressionsCompleted.html">JobImpressionsCompleted</a>
* <th scope="row"><a href="JobImpressionsCompleted.html">
* JobImpressionsCompleted</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobKOctetsProcessed.html">JobKOctetsProcessed</a>
* <th scope="row"><a href="JobKOctetsProcessed.html">
* JobKOctetsProcessed</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobMediaSheetsCompleted.html">JobMediaSheetsCompleted</a>
* <th scope="row"><a href="JobMediaSheetsCompleted.html">
* JobMediaSheetsCompleted</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobMessageFromOperator.html">JobMessageFromOperator</a>
* <th scope="row"><a href="JobMessageFromOperator.html">
* JobMessageFromOperator</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobOriginatingUserName.html">JobOriginatingUserName</a>
* <th scope="row"><a href="JobOriginatingUserName.html">
* JobOriginatingUserName</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobState.html">JobState</a>
* <th scope="row"><a href="JobState.html">JobState</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="JobStateReasons.html">JobStateReasons</a><br>
* Contains zero or more --
* <th scope="row"><a href="JobStateReasons.html">JobStateReasons</a>
* <br>
* Contains zero or more --
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td>-- <a href="JobStateReason.html">JobStateReason</a>
* <th scope="row">-- <a href="JobStateReason.html">JobStateReason</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="NumberOfDocuments.html">NumberOfDocuments</a>
* <th scope="row"><a href="NumberOfDocuments.html">NumberOfDocuments</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="NumberOfInterveningJobs.html">NumberOfInterveningJobs</a>
* <th scope="row"><a href="NumberOfInterveningJobs.html">
* NumberOfInterveningJobs</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="OutputDeviceAssigned.html">OutputDeviceAssigned</a>
* <th scope="row"><a href="OutputDeviceAssigned.html">
* OutputDeviceAssigned</a>
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="ColorSupported.html">ColorSupported</a>
* <th scope="row"><a href="ColorSupported.html">ColorSupported</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PagesPerMinute.html">PagesPerMinute</a>
* <th scope="row"><a href="PagesPerMinute.html">PagesPerMinute</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PagesPerMinuteColor.html">PagesPerMinuteColor</a>
* <th scope="row"><a href="PagesPerMinuteColor.html">
* PagesPerMinuteColor</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PDLOverrideSupported.html">PDLOverrideSupported</a>
* <th scope="row"><a href="PDLOverrideSupported.html">
* PDLOverrideSupported</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterIsAcceptingJobs.html">PrinterIsAcceptingJobs</a>
* <th scope="row"><a href="PrinterIsAcceptingJobs.html">
* PrinterIsAcceptingJobs</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterInfo.html">PrinterInfo</a>
* <th scope="row"><a href="PrinterInfo.html">PrinterInfo</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterLocation.html">PrinterLocation</a>
* <th scope="row"><a href="PrinterLocation.html">PrinterLocation</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterMessageFromOperator.html">
* PrinterMessageFromOperator</a>
* <th scope="row"><a href="PrinterMessageFromOperator.html">
* PrinterMessageFromOperator</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterMakeAndModel.html">PrinterMakeAndModel</a>
* <th scope="row"><a href="PrinterMakeAndModel.html">
* PrinterMakeAndModel</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterMoreInfo.html">PrinterMoreInfo</a>
* <th scope="row"><a href="PrinterMoreInfo.html">PrinterMoreInfo</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterMoreInfoManufacturer.html">
* PrinterMoreInfoManufacturer</a>
* <th scope="row"><a href="PrinterMoreInfoManufacturer.html">
* PrinterMoreInfoManufacturer</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterName.html">PrinterName</a>
* <th scope="row"><a href="PrinterName.html">PrinterName</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterState.html">PrinterState</a>
* <th scope="row"><a href="PrinterState.html">PrinterState</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="PrinterStateReasons.html">PrinterStateReasons</a><br>
* Contains zero or more --
* <th scope="row"><a href="PrinterStateReasons.html">
* PrinterStateReasons</a>
* <br>
* Contains zero or more --
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td>-- <a href="PrinterStateReason.html">PrinterStateReason</a>
* <th scope="row">-- <a href="PrinterStateReason.html">
* PrinterStateReason</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td>-- <a href="Severity.html">Severity</a>
* <th scope="row">-- <a href="Severity.html">Severity</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <tr>
* <td><a href="QueuedJobCount.html">QueuedJobCount</a>
* <th scope="row"><a href="QueuedJobCount.html">QueuedJobCount</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td align="center">X
* <td>&nbsp;
* <tr>
* <td><a href="ReferenceUriSchemesSupported.html">
* ReferenceUriSchemesSupported</a>
* <th scope="row"><a href="ReferenceUriSchemesSupported.html">
* ReferenceUriSchemesSupported</a>
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* <td>&nbsp;
* </tbody>
* </table>
* <p>
* Please note: In the {@code javax.print} APIs, a {@code null} reference

View File

@ -43,32 +43,36 @@ import java.util.Map;
* The following table lists some common properties that should be used in
* implementations:
*
* <table border=1>
* <table class="striped">
* <caption>MIDI File Format Properties</caption>
* <thead>
* <tr>
* <th>Property key
* <th>Value type
* <th>Description
* <th scope="col">Property key
* <th scope="col">Value type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>&quot;author&quot;
* <th scope="row">"author"
* <td>{@link String String}
* <td>name of the author of this file
* <tr>
* <td>&quot;title&quot;
* <th scope="row">"title"
* <td>{@link String String}
* <td>title of this file
* <tr>
* <td>&quot;copyright&quot;
* <th scope="row">"copyright"
* <td>{@link String String}
* <td>copyright message
* <tr>
* <td>&quot;date&quot;
* <th scope="row">"date"
* <td>{@link java.util.Date Date}
* <td>date of the recording or release
* <tr>
* <td>&quot;comment&quot;
* <th scope="row">"comment"
* <td>{@link String String}
* <td>an arbitrary text
* </tbody>
* </table>
*
* @author Kara Kytle

View File

@ -78,32 +78,32 @@ import com.sun.media.sound.ReferenceCountingDevice;
* <caption>MIDI System Property Keys</caption>
* <thead>
* <tr>
* <th>Property Key
* <th>Interface
* <th>Affected Method
* <th scope="col">Property Key
* <th scope="col">Interface
* <th scope="col">Affected Method
* </thead>
* <tbody>
* <tr>
* <td>{@code javax.sound.midi.Receiver}
* <th scope="row">{@code javax.sound.midi.Receiver}
* <td>{@link Receiver}
* <td>{@link #getReceiver}
* <tr>
* <td>{@code javax.sound.midi.Sequencer}
* <th scope="row">{@code javax.sound.midi.Sequencer}
* <td>{@link Sequencer}
* <td>{@link #getSequencer}
* <tr>
* <td>{@code javax.sound.midi.Synthesizer}
* <th scope="row">{@code javax.sound.midi.Synthesizer}
* <td>{@link Synthesizer}
* <td>{@link #getSynthesizer}
* <tr>
* <td>{@code javax.sound.midi.Transmitter}
* <th scope="row">{@code javax.sound.midi.Transmitter}
* <td>{@link Transmitter}
* <td>{@link #getTransmitter}
* </tbody>
* </table>
*
* The property value consists of the provider class name and the device name,
* separated by the hash mark (&quot;#&quot;). The provider class name is the
* separated by the hash mark ("#"). The provider class name is the
* fully-qualified name of a concrete
* {@link MidiDeviceProvider MIDI device provider} class. The device name is
* matched against the {@code String} returned by the {@code getName} method of

View File

@ -50,36 +50,40 @@ import java.util.Objects;
* The following table lists some common properties that should be used in
* implementations:
*
* <table border=1>
* <table class="striped">
* <caption>Audio File Format Properties</caption>
* <thead>
* <tr>
* <th>Property key
* <th>Value type
* <th>Description
* <th scope="col">Property key
* <th scope="col">Value type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>&quot;duration&quot;
* <th scope="row">"duration"
* <td>{@link Long Long}
* <td>playback duration of the file in microseconds
* <tr>
* <td>&quot;author&quot;
* <th scope="row">"author"
* <td>{@link String String}
* <td>name of the author of this file
* <tr>
* <td>&quot;title&quot;
* <th scope="row">"title"
* <td>{@link String String}
* <td>title of this file
* <tr>
* <td>&quot;copyright&quot;
* <th scope="row">"copyright"
* <td>{@link String String}
* <td>copyright message
* <tr>
* <td>&quot;date&quot;
* <th scope="row">"date"
* <td>{@link java.util.Date Date}
* <td>date of the recording or release
* <tr>
* <td>&quot;comment&quot;
* <th scope="row">"comment"
* <td>{@link String String}
* <td>an arbitrary text
* </tbody>
* </table>
*
* @author David Rivas

View File

@ -94,21 +94,21 @@ import java.util.Objects;
* <caption>Audio Format Properties</caption>
* <thead>
* <tr>
* <th>Property key
* <th>Value type
* <th>Description
* <th scope="col">Property key
* <th scope="col">Value type
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>&quot;bitrate&quot;
* <th scope="row">"bitrate"
* <td>{@link java.lang.Integer Integer}
* <td>average bit rate in bits per second
* <tr>
* <td>&quot;vbr&quot;
* <th scope="row">"vbr"
* <td>{@link java.lang.Boolean Boolean}
* <td>{@code true}, if the file is encoded in variable bit rate (VBR)
* <tr>
* <td>&quot;quality&quot;
* <th scope="row">"quality"
* <td>{@link java.lang.Integer Integer}
* <td>encoding/conversion quality, 1..100
* </tbody>

View File

@ -46,13 +46,13 @@ import java.security.BasicPermission;
* risks</caption>
* <thead>
* <tr>
* <th>Permission Target Name
* <th>What the Permission Allows
* <th>Risks of Allowing this Permission
* <th scope="col">Permission Target Name
* <th scope="col">What the Permission Allows
* <th scope="col">Risks of Allowing this Permission
* </thead>
* <tbody>
* <tr>
* <td>play
* <th scope="row">play
* <td>Audio playback through the audio device or devices on the system.
* Allows the application to obtain and manipulate lines and mixers for
* audio playback (rendering).
@ -61,7 +61,7 @@ import java.security.BasicPermission;
* audio being played on the system, or because manipulation of a mixer
* affects the audio for all lines using that mixer.
* <tr>
* <td>record
* <th scope="row">record
* <td>Audio recording through the audio device or devices on the system.
* Allows the application to obtain and manipulate lines and mixers for
* audio recording (capture).

View File

@ -75,32 +75,32 @@ import com.sun.media.sound.JDK13Services;
* <caption>Audio System Property Keys</caption>
* <thead>
* <tr>
* <th>Property Key
* <th>Interface
* <th>Affected Method(s)
* <th scope="col">Property Key
* <th scope="col">Interface
* <th scope="col">Affected Method(s)
* </thead>
* <tbody>
* <tr>
* <td>{@code javax.sound.sampled.Clip}
* <th scope="row">{@code javax.sound.sampled.Clip}
* <td>{@link Clip}
* <td>{@link #getLine}, {@link #getClip}
* <tr>
* <td>{@code javax.sound.sampled.Port}
* <th scope="row">{@code javax.sound.sampled.Port}
* <td>{@link Port}
* <td>{@link #getLine}
* <tr>
* <td>{@code javax.sound.sampled.SourceDataLine}
* <th scope="row">{@code javax.sound.sampled.SourceDataLine}
* <td>{@link SourceDataLine}
* <td>{@link #getLine}, {@link #getSourceDataLine}
* <tr>
* <td>{@code javax.sound.sampled.TargetDataLine}
* <th scope="row">{@code javax.sound.sampled.TargetDataLine}
* <td>{@link TargetDataLine}
* <td>{@link #getLine}, {@link #getTargetDataLine}
* </tbody>
* </table>
*
* The property value consists of the provider class name and the mixer name,
* separated by the hash mark (&quot;#&quot;). The provider class name is the
* separated by the hash mark ("#"). The provider class name is the
* fully-qualified name of a concrete {@link MixerProvider mixer provider}
* class. The mixer name is matched against the {@code String} returned by the
* {@code getName} method of {@code Mixer.Info}. Either the class name, or the

View File

@ -75,44 +75,44 @@ package javax.sound.sampled;
* early intensity, and early delay</caption>
* <thead>
* <tr>
* <th>Type
* <th>Decay Time (ms)
* <th>Late Intensity (dB)
* <th>Late Delay (ms)
* <th>Early Intensity (dB)
* <th>Early Delay(ms)
* <th scope="col">Type
* <th scope="col">Decay Time (ms)
* <th scope="col">Late Intensity (dB)
* <th scope="col">Late Delay (ms)
* <th scope="col">Early Intensity (dB)
* <th scope="col">Early Delay(ms)
* </thead>
* <tbody>
* <tr>
* <td>Cavern
* <th scope="row">Cavern
* <td>2250
* <td>-2.0
* <td>41.3
* <td>-1.4
* <td>10.3
* <tr>
* <td>Dungeon
* <th scope="row">Dungeon
* <td>1600
* <td>-1.0
* <td>10.3
* <td>-0.7
* <td>2.6
* <tr>
* <td>Garage
* <th scope="row">Garage
* <td>900
* <td>-6.0
* <td>14.7
* <td>-4.0
* <td>3.9
* <tr>
* <td>Acoustic Lab
* <th scope="row">Acoustic Lab
* <td>280
* <td>-3.0
* <td>8.0
* <td>-2.0
* <td>2.0
* <tr>
* <td>Closet
* <th scope="row">Closet
* <td>150
* <td>-10.0
* <td>2.5

View File

@ -98,102 +98,88 @@ import java.beans.*;
* <caption>Supported Action properties</caption>
* <thead>
* <tr>
* <th>Component Property
* <th>Components
* <th>Action Key
* <th>Notes
* <th scope="col">Component Property
* <th scope="col">Components
* <th scope="col">Action Key
* <th scope="col">Notes
* </thead>
* <tbody>
* <tr valign="top" style="text-align:left">
* <td><b><code>enabled</code></b>
* <td>All
* <td>The <code>isEnabled</code> method
* <td>&nbsp;
* <tr valign="top" style="text-align:left">
* <td><b><code>toolTipText</code></b>
* <td>All
* <td><code>SHORT_DESCRIPTION</code>
* <td>&nbsp;
* <tr valign="top" style="text-align:left">
* <td><b><code>actionCommand</code></b>
* <td>All
* <td><code>ACTION_COMMAND_KEY</code>
* <td>&nbsp;
* <tr valign="top" style="text-align:left">
* <td><b><code>mnemonic</code></b>
* <td>All buttons
* <td><code>MNEMONIC_KEY</code>
* <td>A <code>null</code> value or <code>Action</code> results in the
* button's <code>mnemonic</code> property being set to
* <code>'\0'</code>.
* <tr valign="top" style="text-align:left">
* <td><b><code>text</code></b>
* <td>All buttons
* <td><code>NAME</code>
* <td>If you do not want the text of the button to mirror that
* of the <code>Action</code>, set the property
* <code>hideActionText</code> to <code>true</code>. If
* <code>hideActionText</code> is <code>true</code>, setting the
* <code>Action</code> changes the text of the button to
* <code>null</code> and any changes to <code>NAME</code>
* are ignored. <code>hideActionText</code> is useful for
* tool bar buttons that typically only show an <code>Icon</code>.
* <code>JToolBar.add(Action)</code> sets the property to
* <code>true</code> if the <code>Action</code> has a
* non-<code>null</code> value for <code>LARGE_ICON_KEY</code> or
* <code>SMALL_ICON</code>.
* <tr valign="top" style="text-align:left">
* <td><b><code>displayedMnemonicIndex</code></b>
* <td>All buttons
* <td><code>DISPLAYED_MNEMONIC_INDEX_KEY</code>
* <td>If the value of <code>DISPLAYED_MNEMONIC_INDEX_KEY</code> is
* beyond the bounds of the text, it is ignored. When
* <code>setAction</code> is called, if the value from the
* <code>Action</code> is <code>null</code>, the displayed
* mnemonic index is not updated. In any subsequent changes to
* <code>DISPLAYED_MNEMONIC_INDEX_KEY</code>, <code>null</code>
* is treated as -1.
* <tr valign="top" style="text-align:left">
* <td><b><code>icon</code></b>
* <td>All buttons except of <code>JCheckBox</code>,
* <code>JToggleButton</code> and <code>JRadioButton</code>.
* <td>either <code>LARGE_ICON_KEY</code> or
* <code>SMALL_ICON</code>
* <td>The <code>JMenuItem</code> subclasses only use
* <code>SMALL_ICON</code>. All other buttons will use
* <code>LARGE_ICON_KEY</code>; if the value is <code>null</code> they
* use <code>SMALL_ICON</code>.
* <tr valign="top" style="text-align:left">
* <td><b><code>accelerator</code></b>
* <td>All <code>JMenuItem</code> subclasses, with the exception of
* <code>JMenu</code>.
* <td><code>ACCELERATOR_KEY</code>
* <td>&nbsp;
* <tr valign="top" style="text-align:left">
* <td><b><code>selected</code></b>
* <td><code>JToggleButton</code>, <code>JCheckBox</code>,
* <code>JRadioButton</code>, <code>JCheckBoxMenuItem</code> and
* <code>JRadioButtonMenuItem</code>
* <td><code>SELECTED_KEY</code>
* <td>Components that honor this property only use
* the value if it is {@code non-null}. For example, if
* you set an {@code Action} that has a {@code null}
* value for {@code SELECTED_KEY} on a {@code JToggleButton}, the
* {@code JToggleButton} will not update it's selected state in
* any way. Similarly, any time the {@code JToggleButton}'s
* selected state changes it will only set the value back on
* the {@code Action} if the {@code Action} has a {@code non-null}
* value for {@code SELECTED_KEY}.
* <br>
* Components that honor this property keep their selected state
* in sync with this property. When the same {@code Action} is used
* with multiple components, all the components keep their selected
* state in sync with this property. Mutually exclusive
* buttons, such as {@code JToggleButton}s in a {@code ButtonGroup},
* force only one of the buttons to be selected. As such, do not
* use the same {@code Action} that defines a value for the
* {@code SELECTED_KEY} property with multiple mutually
* exclusive buttons.
* <tr>
* <th scope="row">{@code enabled}
* <td>All
* <td>The {@code isEnabled} method
* <td>&nbsp;
* <tr>
* <th scope="row">{@code toolTipText}
* <td>All
* <td>{@code SHORT_DESCRIPTION}
* <td>&nbsp;
* <tr>
* <th scope="row">{@code actionCommand}
* <td>All
* <td>{@code ACTION_COMMAND_KEY}
* <td>&nbsp;
* <tr>
* <th scope="row">{@code mnemonic}
* <td>All buttons
* <td>{@code MNEMONIC_KEY}
* <td>A {@code null} value or {@code Action} results in the button's
* {@code mnemonic} property being set to {@code '\0'}.
* <tr>
* <th scope="row">{@code text}
* <td>All buttons
* <td>{@code NAME}
* <td>If you do not want the text of the button to mirror that of the
* {@code Action}, set the property {@code hideActionText} to {@code true}.
* If {@code hideActionText} is {@code true}, setting the {@code Action}
* changes the text of the button to {@code null} and any changes to
* {@code NAME} are ignored. {@code hideActionText} is useful for tool bar
* buttons that typically only show an {@code Icon}.
* {@code JToolBar.add(Action)} sets the property to {@code true} if the
* {@code Action} has a non-{@code null} value for {@code LARGE_ICON_KEY} or
* {@code SMALL_ICON}.
* <tr>
* <th scope="row">{@code displayedMnemonicIndex}
* <td>All buttons
* <td>{@code DISPLAYED_MNEMONIC_INDEX_KEY}
* <td>If the value of {@code DISPLAYED_MNEMONIC_INDEX_KEY} is beyond the
* bounds of the text, it is ignored. When {@code setAction} is called, if
* the value from the {@code Action} is {@code null}, the displayed mnemonic
* index is not updated. In any subsequent changes to
* {@code DISPLAYED_MNEMONIC_INDEX_KEY}, {@code null} is treated as -1.
* <tr>
* <th scope="row">{@code icon}
* <td>All buttons except of {@code JCheckBox}, {@code JToggleButton} and
* {@code JRadioButton}.
* <td>either {@code LARGE_ICON_KEY} or {@code SMALL_ICON}
* <td>The {@code JMenuItem} subclasses only use {@code SMALL_ICON}. All
* other buttons will use {@code LARGE_ICON_KEY}; if the value is
* {@code null} they use {@code SMALL_ICON}.
* <tr>
* <th scope="row">{@code accelerator}
* <td>All {@code JMenuItem} subclasses, with the exception of {@code JMenu}.
* <td>{@code ACCELERATOR_KEY}
* <td>&nbsp;
* <tr>
* <th scope="row">{@code selected}
* <td>{@code JToggleButton}, {@code JCheckBox}, {@code JRadioButton},
* {@code JCheckBoxMenuItem} and {@code JRadioButtonMenuItem}
* <td>{@code SELECTED_KEY}
* <td>Components that honor this property only use the value if it is
* {@code non-null}. For example, if you set an {@code Action} that has a
* {@code null} value for {@code SELECTED_KEY} on a {@code JToggleButton},
* the {@code JToggleButton} will not update it's selected state in any way.
* Similarly, any time the {@code JToggleButton}'s selected state changes it
* will only set the value back on the {@code Action} if the {@code Action}
* has a {@code non-null} value for {@code SELECTED_KEY}.
* <br>
* Components that honor this property keep their selected state in sync with
* this property. When the same {@code Action} is used with multiple
* components, all the components keep their selected state in sync with this
* property. Mutually exclusive buttons, such as {@code JToggleButton}s in a
* {@code ButtonGroup}, force only one of the buttons to be selected. As
* such, do not use the same {@code Action} that defines a value for the
* {@code SELECTED_KEY} property with multiple mutually exclusive buttons.
* </tbody>
* </table>
* <p>

View File

@ -59,27 +59,32 @@ import javax.swing.text.*;
* <caption>Possible JFormattedTextField configurations and their descriptions
* </caption>
* <thead>
* <tr><th>Value</th>
* <th>Description</th></tr>
* <tr>
* <th scope="col">Value
* <th scope="col">Description
* </thead>
* <tbody>
* <tr><td>JFormattedTextField.REVERT
* <td>Revert the display to match that of <code>getValue</code>,
* possibly losing the current edit.
* <tr><td>JFormattedTextField.COMMIT
* <td>Commits the current value. If the value being edited
* isn't considered a legal value by the
* <code>AbstractFormatter</code> that is, a
* <code>ParseException</code> is thrown, then the value
* will not change, and then edited value will persist.
* <tr><td>JFormattedTextField.COMMIT_OR_REVERT
* <td>Similar to <code>COMMIT</code>, but if the value isn't
* legal, behave like <code>REVERT</code>.
* <tr><td>JFormattedTextField.PERSIST
* <td>Do nothing, don't obtain a new
* <code>AbstractFormatter</code>, and don't update the value.
* <tr>
* <th scope="row">JFormattedTextField.REVERT
* <td>Revert the display to match that of {@code getValue}, possibly losing
* the current edit.
* <tr>
* <th scope="row">JFormattedTextField.COMMIT
* <td>Commits the current value. If the value being edited isn't considered
* a legal value by the {@code AbstractFormatter} that is, a
* {@code ParseException} is thrown, then the value will not change, and
* then edited value will persist.
* <tr>
* <th scope="row">JFormattedTextField.COMMIT_OR_REVERT
* <td>Similar to {@code COMMIT}, but if the value isn't legal, behave like
* {@code REVERT}.
* <tr>
* <th scope="row">JFormattedTextField.PERSIST
* <td>Do nothing, don't obtain a new {@code AbstractFormatter}, and don't
* update the value.
* </tbody>
* </table>
*
* The default is <code>JFormattedTextField.COMMIT_OR_REVERT</code>,
* refer to {@link #setFocusLostBehavior} for more information on this.
* <p>

View File

@ -968,25 +968,30 @@ public class JList<E> extends JComponent implements Scrollable, Accessible
* <caption>Describes layouts VERTICAL,HORIZONTAL_WRAP, and VERTICAL_WRAP
* </caption>
* <thead>
* <tr><th>Value</th><th>Description</th></tr>
* <tr>
* <th scope="col">Value
* <th scope="col">Description
* </thead>
* <tbody>
* <tr><td><code>VERTICAL</code>
* <td>Cells are layed out vertically in a single column.
* <tr><td><code>HORIZONTAL_WRAP</code>
* <td>Cells are layed out horizontally, wrapping to a new row as
* necessary. If the {@code visibleRowCount} property is less than
* or equal to zero, wrapping is determined by the width of the
* list; otherwise wrapping is done in such a way as to ensure
* {@code visibleRowCount} rows in the list.
* <tr><td><code>VERTICAL_WRAP</code>
* <td>Cells are layed out vertically, wrapping to a new column as
* necessary. If the {@code visibleRowCount} property is less than
* or equal to zero, wrapping is determined by the height of the
* list; otherwise wrapping is done at {@code visibleRowCount} rows.
* <tr>
* <th scope="row">{@code VERTICAL}
* <td>Cells are layed out vertically in a single column.
* <tr>
* <th scope="row">{@code HORIZONTAL_WRAP}
* <td>Cells are layed out horizontally, wrapping to a new row as
* necessary. If the {@code visibleRowCount} property is less than or
* equal to zero, wrapping is determined by the width of the list;
* otherwise wrapping is done in such a way as to ensure
* {@code visibleRowCount} rows in the list.
* <tr>
* <th scope="row">{@code VERTICAL_WRAP}
* <td>Cells are layed out vertically, wrapping to a new column as
* necessary. If the {@code visibleRowCount} property is less than or
* equal to zero, wrapping is determined by the height of the list;
* otherwise wrapping is done at {@code visibleRowCount} rows.
* </tbody>
* </table>
* <p>
*
* The default value of this property is <code>VERTICAL</code>.
*
* @param layoutOrientation the new layout orientation, one of:

View File

@ -71,37 +71,30 @@ import sun.awt.AWTAccessor;
* class may appear complex because of the large number of methods, almost
* all uses of this class are one-line calls to one of the static
* <code>showXxxDialog</code> methods shown below:
* <blockquote>
*
* <table class="striped">
* <caption>Common JOptionPane method names and their descriptions</caption>
* <thead>
* <tr>
* <th>Method Name</th>
* <th>Description</th>
* </tr>
* <tr>
* <th scope="col">Method Name
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>showConfirmDialog</td>
* <td>Asks a confirming question, like yes/no/cancel.</td>
* </tr>
* <tr>
* <td>showInputDialog</td>
* <td>Prompt for some input.</td>
* </tr>
* <tr>
* <td>showMessageDialog</td>
* <td>Tell the user about something that has happened.</td>
* </tr>
* <tr>
* <td>showOptionDialog</td>
* <td>The Grand Unification of the above three.</td>
* </tr>
* <tr>
* <th scope="row">showConfirmDialog
* <td>Asks a confirming question, like yes/no/cancel.</td>
* <tr>
* <th scope="row">showInputDialog
* <td>Prompt for some input.
* <tr>
* <th scope="row">showMessageDialog
* <td>Tell the user about something that has happened.
* <tr>
* <th scope="row">showOptionDialog
* <td>The Grand Unification of the above three.
* </tbody>
* </table>
*
* </blockquote>
* Each of these methods also comes in a <code>showInternalXXX</code>
* flavor, which uses an internal frame to hold the dialog box (see
* {@link JInternalFrame}).

View File

@ -588,52 +588,53 @@ public class BasicListUI extends ListUI
* <caption>Describes the preferred size for each layout orientation
* </caption>
* <thead>
* <tr><th>Layout Orientation</th><th>Preferred Size</th></tr>
* <tr>
* <th scope="col">Layout Orientation
* <th scope="col">Preferred Size
* </thead>
* <tbody>
* <tr>
* <td>JList.VERTICAL
* <td>The preferredSize of the list is total height of the rows
* and the maximum width of the cells. If JList.fixedCellHeight
* is specified then the total height of the rows is just
* (cellVerticalMargins + fixedCellHeight) * model.getSize() where
* rowVerticalMargins is the space we allocate for drawing
* the yellow focus outline. Similarly if fixedCellWidth is
* specified then we just use that.
* </td>
* <tr>
* <td>JList.VERTICAL_WRAP
* <td>If the visible row count is greater than zero, the preferredHeight
* is the maximum cell height * visibleRowCount. If the visible row
* count is &lt;= 0, the preferred height is either the current height
* of the list, or the maximum cell height, whichever is
* bigger. The preferred width is than the maximum cell width *
* number of columns needed. Where the number of columns needs is
* list.height / max cell height. Max cell height is either the fixed
* cell height, or is determined by iterating through all the cells
* to find the maximum height from the ListCellRenderer.
* <tr>
* <td>JList.HORIZONTAL_WRAP
* <td>If the visible row count is greater than zero, the preferredHeight
* is the maximum cell height * adjustedRowCount. Where
* visibleRowCount is used to determine the number of columns.
* Because this lays out horizontally the number of rows is
* then determined from the column count. For example, lets say
* you have a model with 10 items and the visible row count is 8.
* The number of columns needed to display this is 2, but you no
* longer need 8 rows to display this, you only need 5, thus
* the adjustedRowCount is 5.
* <p>If the visible row
* count is &lt;= 0, the preferred height is dictated by the
* number of columns, which will be as many as can fit in the width
* of the <code>JList</code> (width / max cell width), with at
* least one column. The preferred height then becomes the
* model size / number of columns * maximum cell height.
* Max cell height is either the fixed
* cell height, or is determined by iterating through all the cells
* to find the maximum height from the ListCellRenderer.
* <tr>
* <th scope="row">JList.VERTICAL
* <td>The preferredSize of the list is total height of the rows
* and the maximum width of the cells. If JList.fixedCellHeight
* is specified then the total height of the rows is just
* (cellVerticalMargins + fixedCellHeight) * model.getSize() where
* rowVerticalMargins is the space we allocate for drawing
* the yellow focus outline. Similarly if fixedCellWidth is
* specified then we just use that.
* <tr>
* <th scope="row">JList.VERTICAL_WRAP
* <td>If the visible row count is greater than zero, the preferredHeight
* is the maximum cell height * visibleRowCount. If the visible row
* count is &lt;= 0, the preferred height is either the current height
* of the list, or the maximum cell height, whichever is
* bigger. The preferred width is than the maximum cell width *
* number of columns needed. Where the number of columns needs is
* list.height / max cell height. Max cell height is either the fixed
* cell height, or is determined by iterating through all the cells
* to find the maximum height from the ListCellRenderer.
* <tr>
* <th scope="row">JList.HORIZONTAL_WRAP
* <td>If the visible row count is greater than zero, the preferredHeight
* is the maximum cell height * adjustedRowCount. Where
* visibleRowCount is used to determine the number of columns.
* Because this lays out horizontally the number of rows is
* then determined from the column count. For example, lets say
* you have a model with 10 items and the visible row count is 8.
* The number of columns needed to display this is 2, but you no
* longer need 8 rows to display this, you only need 5, thus
* the adjustedRowCount is 5.
* <p>
* If the visible row count is &lt;= 0, the preferred height is dictated
* by the number of columns, which will be as many as can fit in the
* width of the {@code JList} (width / max cell width), with at least
* one column. The preferred height then becomes the model size / number
* of columns * maximum cell height. Max cell height is either the fixed
* cell height, or is determined by iterating through all the cells to
* find the maximum height from the ListCellRenderer.
* </tbody>
* </table>
*
* The above specifies the raw preferred width and height. The resulting
* preferred width is the above width + insets.left + insets.right and
* the resulting preferred height is the above height + insets.top +

View File

@ -295,87 +295,87 @@ public class MetalLookAndFeel extends BasicLookAndFeel
* <caption>Metal's system color mapping</caption>
* <thead>
* <tr>
* <th>Key
* <th>Value
* <th scope="col">Key
* <th scope="col">Value
* </thead>
* <tbody>
* <tr valign="top" style="text-align:left">
* <td>"desktop"
* <tr>
* <th scope="row">"desktop"
* <td>{@code theme.getDesktopColor()}
* <tr valign="top" style="text-align:left">
* <td>"activeCaption"
* <tr>
* <th scope="row">"activeCaption"
* <td>{@code theme.getWindowTitleBackground()}
* <tr valign="top" style="text-align:left">
* <td>"activeCaptionText"
* <tr>
* <th scope="row">"activeCaptionText"
* <td>{@code theme.getWindowTitleForeground()}
* <tr valign="top" style="text-align:left">
* <td>"activeCaptionBorder"
* <tr>
* <th scope="row">"activeCaptionBorder"
* <td>{@code theme.getPrimaryControlShadow()}
* <tr valign="top" style="text-align:left">
* <td>"inactiveCaption"
* <tr>
* <th scope="row">"inactiveCaption"
* <td>{@code theme.getWindowTitleInactiveBackground()}
* <tr valign="top" style="text-align:left">
* <td>"inactiveCaptionText"
* <tr>
* <th scope="row">"inactiveCaptionText"
* <td>{@code theme.getWindowTitleInactiveForeground()}
* <tr valign="top" style="text-align:left">
* <td>"inactiveCaptionBorder"
* <tr>
* <th scope="row">"inactiveCaptionBorder"
* <td>{@code theme.getControlShadow()}
* <tr valign="top" style="text-align:left">
* <td>"window"
* <tr>
* <th scope="row">"window"
* <td>{@code theme.getWindowBackground()}
* <tr valign="top" style="text-align:left">
* <td>"windowBorder"
* <tr>
* <th scope="row">"windowBorder"
* <td>{@code theme.getControl()}
* <tr valign="top" style="text-align:left">
* <td>"windowText"
* <tr>
* <th scope="row">"windowText"
* <td>{@code theme.getUserTextColor()}
* <tr valign="top" style="text-align:left">
* <td>"menu"
* <tr>
* <th scope="row">"menu"
* <td>{@code theme.getMenuBackground()}
* <tr valign="top" style="text-align:left">
* <td>"menuText"
* <tr>
* <th scope="row">"menuText"
* <td>{@code theme.getMenuForeground()}
* <tr valign="top" style="text-align:left">
* <td>"text"
* <tr>
* <th scope="row">"text"
* <td>{@code theme.getWindowBackground()}
* <tr valign="top" style="text-align:left">
* <td>"textText"
* <tr>
* <th scope="row">"textText"
* <td>{@code theme.getUserTextColor()}
* <tr valign="top" style="text-align:left">
* <td>"textHighlight"
* <tr>
* <th scope="row">"textHighlight"
* <td>{@code theme.getTextHighlightColor()}
* <tr valign="top" style="text-align:left">
* <td>"textHighlightText"
* <tr>
* <th scope="row">"textHighlightText"
* <td>{@code theme.getHighlightedTextColor()}
* <tr valign="top" style="text-align:left">
* <td>"textInactiveText"
* <tr>
* <th scope="row">"textInactiveText"
* <td>{@code theme.getInactiveSystemTextColor()}
* <tr valign="top" style="text-align:left">
* <td>"control"
* <tr>
* <th scope="row">"control"
* <td>{@code theme.getControl()}
* <tr valign="top" style="text-align:left">
* <td>"controlText"
* <tr>
* <th scope="row">"controlText"
* <td>{@code theme.getControlTextColor()}
* <tr valign="top" style="text-align:left">
* <td>"controlHighlight"
* <tr>
* <th scope="row">"controlHighlight"
* <td>{@code theme.getControlHighlight()}
* <tr valign="top" style="text-align:left">
* <td>"controlLtHighlight"
* <tr>
* <th scope="row">"controlLtHighlight"
* <td>{@code theme.getControlHighlight()}
* <tr valign="top" style="text-align:left">
* <td>"controlShadow"
* <tr>
* <th scope="row">"controlShadow"
* <td>{@code theme.getControlShadow()}
* <tr valign="top" style="text-align:left">
* <td>"controlDkShadow"
* <tr>
* <th scope="row">"controlDkShadow"
* <td>{@code theme.getControlDarkShadow()}
* <tr valign="top" style="text-align:left">
* <td>"scrollbar"
* <tr>
* <th scope="row">"scrollbar"
* <td>{@code theme.getControl()}
* <tr valign="top" style="text-align:left">
* <td>"info"
* <tr>
* <th scope="row">"info"
* <td>{@code theme.getPrimaryControl()}
* <tr valign="top" style="text-align:left">
* <td>"infoText"
* <tr>
* <th scope="row">"infoText"
* <td>{@code theme.getPrimaryControlInfo()}
* </tbody>
* </table>

View File

@ -47,24 +47,25 @@ import javax.swing.plaf.basic.*;
* <table class="striped">
* <caption>Descriptions of supported hints: Angled, Horizontal, and None
* </caption>
* <tr>
* <th>Angled</th>
* <td>A line is drawn connecting the child to the parent. For handling
* of the root node refer to
* {@link javax.swing.JTree#setRootVisible} and
* {@link javax.swing.JTree#setShowsRootHandles}.
* </td>
* </tr>
* <tr>
* <th>Horizontal</th>
* <td>A horizontal line is drawn dividing the children of the root node.</td>
* </tr>
* <tr>
* <th>None</th>
* <td>Do not draw any visual indication between nodes.</td>
* </tr>
* <thead>
* <tr>
* <th scope="col">Hint
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <th scope="row">Angled
* <td>A line is drawn connecting the child to the parent. For handling of
* the root node refer to {@link JTree#setRootVisible} and
* {@link JTree#setShowsRootHandles}.
* <tr>
* <th scope="row">Horizontal
* <td>A horizontal line is drawn dividing the children of the root node.
* <tr>
* <th scope="row">None
* <td>Do not draw any visual indication between nodes.
* </tbody>
* </table>
*
* <p>
* As it is typically impractical to obtain the <code>TreeUI</code> from
* the <code>JTree</code> and cast to an instance of <code>MetalTreeUI</code>

View File

@ -160,34 +160,39 @@ import sun.swing.SwingAccessor;
* <table class="striped">
* <caption>Stages of keyboard and input method event handling</caption>
* <thead>
* <tr>
* <th id="stage">Stage</th>
* <th id="ke">KeyEvent</th>
* <th id="ime">InputMethodEvent</th></tr>
* <tr>
* <th scope="col">Stage
* <th scope="col">KeyEvent
* <th scope="col">InputMethodEvent
* </thead>
* <tbody>
* <tr><td headers="stage">1. </td>
* <td headers="ke">input methods </td>
* <td headers="ime">(generated here)</td></tr>
* <tr><td headers="stage">2. </td>
* <td headers="ke">focus manager </td>
* <td headers="ime"></td>
* </tr>
* <tr>
* <td headers="stage">3. </td>
* <td headers="ke">registered key listeners</td>
* <td headers="ime">registered input method listeners</tr>
* <tr>
* <td headers="stage">4. </td>
* <td headers="ke"></td>
* <td headers="ime">input method handling in JTextComponent</tr>
* <tr>
* <td headers="stage">5. </td><td headers="ke ime" colspan=2>keymap handling using the current keymap</td></tr>
* <tr><td headers="stage">6. </td><td headers="ke">keyboard handling in JComponent (e.g. accelerators, component navigation, etc.)</td>
* <td headers="ime"></td></tr>
* <tr>
* <th scope="row">1.
* <td>input methods
* <td>(generated here)
* <tr>
* <th scope="row" headers="stage">2.
* <td>focus manager
* <td>
* </tr>
* <tr>
* <th scope="row">3.
* <td>registered key listeners
* <td>registered input method listeners
* <tr>
* <th scope="row">4.
* <td>
* <td>input method handling in JTextComponent
* <tr>
* <th scope="row">5.
* <td colspan=2>keymap handling using the current keymap
* <tr>
* <th scope="row">6.
* <td>keyboard handling in JComponent (e.g. accelerators, component
* navigation, etc.)
* <td>
* </tbody>
* </table>
*
* <p>
* To maintain compatibility with applications that listen to key
* events but are not aware of input method events, the input

View File

@ -40,36 +40,39 @@ import javax.swing.*;
* <table class="striped">
* <caption>Valid characters and their descriptions</caption>
* <thead>
* <tr>
* <th>Character&nbsp;</th>
* <th>Description</th>
* </tr>
* <tr>
* <th scope="col">Character
* <th scope="col">Description
* </thead>
* <tbody>
* <tr>
* <td>#</td>
* <td>Any valid number, uses <code>Character.isDigit</code>.</td>
* </tr>
* <tr>
* <td>'</td>
* <td>Escape character, used to escape any of the
* special formatting characters.</td>
* </tr>
* <tr>
* <td>U</td><td>Any character (<code>Character.isLetter</code>). All
* lowercase letters are mapped to upper case.</td>
* </tr>
* <tr><td>L</td><td>Any character (<code>Character.isLetter</code>). All
* upper case letters are mapped to lower case.</td>
* </tr>
* <tr><td>A</td><td>Any character or number (<code>Character.isLetter</code>
* or <code>Character.isDigit</code>)</td>
* </tr>
* <tr><td>?</td><td>Any character
* (<code>Character.isLetter</code>).</td>
* </tr>
* <tr><td>*</td><td>Anything.</td></tr>
* <tr><td>H</td><td>Any hex character (0-9, a-f or A-F).</td></tr>
* <tr>
* <th scope="row">#
* <td>Any valid number, uses {@code Character.isDigit}.
* <tr>
* <th scope="row">'
* <td>Escape character, used to escape any of the special formatting
* characters.
* <tr>
* <th scope="row">U
* <td>Any character ({@code Character.isLetter}). All lowercase letters are
* mapped to upper case.
* <tr>
* <th scope="row">L
* <td>Any character ({@code Character.isLetter}). All upper case letters
* are mapped to lower case.
* <tr>
* <th scope="row">A
* <td>Any character or number ({@code Character.isLetter} or
* {@code Character.isDigit}).
* <tr>
* <th scope="row">?
* <td>Any character ({@code Character.isLetter}).
* <tr>
* <th scope="row">*
* <td>Anything.
* <tr>
* <th scope="row">H
* <td>Any hex character (0-9, a-f or A-F).
* </tbody>
* </table>
*

View File

@ -50,60 +50,47 @@ import javax.swing.text.*;
* <table class="striped">
* <caption>Shows what components get built by this view</caption>
* <thead>
* <tr>
* <th>Element Type</th>
* <th>Component built</th>
* </tr>
* <tr>
* <th scope="col">Element Type
* <th scope="col">Component built
* </thead>
* <tbody>
* <tr>
* <td>input, type button</td>
* <td>JButton</td>
* </tr>
* <tr>
* <td>input, type checkbox</td>
* <td>JCheckBox</td>
* </tr>
* <tr>
* <td>input, type image</td>
* <td>JButton</td>
* </tr>
* <tr>
* <td>input, type password</td>
* <td>JPasswordField</td>
* </tr>
* <tr>
* <td>input, type radio</td>
* <td>JRadioButton</td>
* </tr>
* <tr>
* <td>input, type reset</td>
* <td>JButton</td>
* </tr>
* <tr>
* <td>input, type submit</td>
* <td>JButton</td>
* </tr>
* <tr>
* <td>input, type text</td>
* <td>JTextField</td>
* </tr>
* <tr>
* <td>select, size &gt; 1 or multiple attribute defined</td>
* <td>JList in a JScrollPane</td>
* </tr>
* <tr>
* <td>select, size unspecified or 1</td>
* <td>JComboBox</td>
* </tr>
* <tr>
* <td>textarea</td>
* <td>JTextArea in a JScrollPane</td>
* </tr>
* <tr>
* <td>input, type file</td>
* <td>JTextField</td>
* </tr>
* <tr>
* <th scope="row">input, type button
* <td>JButton
* <tr>
* <th scope="row">input, type checkbox
* <td>JCheckBox
* <tr>
* <th scope="row">input, type image
* <td>JButton
* <tr>
* <th scope="row">input, type password
* <td>JPasswordField
* <tr>
* <th scope="row">input, type radio
* <td>JRadioButton
* <tr>
* <th scope="row">input, type reset
* <td>JButton
* <tr>
* <th scope="row">input, type submit
* <td>JButton
* <tr>
* <th scope="row">input, type text
* <td>JTextField
* <tr>
* <th scope="row">select, size &gt; 1 or multiple attribute defined
* <td>JList in a JScrollPane
* <tr>
* <th scope="row">select, size unspecified or 1
* <td>JComboBox
* <tr>
* <th scope="row">textarea
* <td>JTextArea in a JScrollPane
* <tr>
* <th scope="row">input, type file
* <td>JTextField
* </tbody>
* </table>
*

View File

@ -2134,81 +2134,227 @@ public class HTMLDocument extends DefaultStyledDocument {
* <table class="striped">
* <caption>HTML tags and assigned actions</caption>
* <thead>
* <tr><th>Tag</th><th>Action</th></tr>
* <tr>
* <th scope="col">Tag
* <th scope="col">Action
* </thead>
* <tbody>
* <tr><td><code>HTML.Tag.A</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.ADDRESS</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.APPLET</code> <td>HiddenAction
* <tr><td><code>HTML.Tag.AREA</code> <td>AreaAction
* <tr><td><code>HTML.Tag.B</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.BASE</code> <td>BaseAction
* <tr><td><code>HTML.Tag.BASEFONT</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.BIG</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.BLOCKQUOTE</code><td>BlockAction
* <tr><td><code>HTML.Tag.BODY</code> <td>BlockAction
* <tr><td><code>HTML.Tag.BR</code> <td>SpecialAction
* <tr><td><code>HTML.Tag.CAPTION</code> <td>BlockAction
* <tr><td><code>HTML.Tag.CENTER</code> <td>BlockAction
* <tr><td><code>HTML.Tag.CITE</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.CODE</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.DD</code> <td>BlockAction
* <tr><td><code>HTML.Tag.DFN</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.DIR</code> <td>BlockAction
* <tr><td><code>HTML.Tag.DIV</code> <td>BlockAction
* <tr><td><code>HTML.Tag.DL</code> <td>BlockAction
* <tr><td><code>HTML.Tag.DT</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.EM</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.FONT</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.FORM</code> <td>As of 1.4 a BlockAction
* <tr><td><code>HTML.Tag.FRAME</code> <td>SpecialAction
* <tr><td><code>HTML.Tag.FRAMESET</code> <td>BlockAction
* <tr><td><code>HTML.Tag.H1</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.H2</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.H3</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.H4</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.H5</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.H6</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.HEAD</code> <td>HeadAction
* <tr><td><code>HTML.Tag.HR</code> <td>SpecialAction
* <tr><td><code>HTML.Tag.HTML</code> <td>BlockAction
* <tr><td><code>HTML.Tag.I</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.IMG</code> <td>SpecialAction
* <tr><td><code>HTML.Tag.INPUT</code> <td>FormAction
* <tr><td><code>HTML.Tag.ISINDEX</code> <td>IsndexAction
* <tr><td><code>HTML.Tag.KBD</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.LI</code> <td>BlockAction
* <tr><td><code>HTML.Tag.LINK</code> <td>LinkAction
* <tr><td><code>HTML.Tag.MAP</code> <td>MapAction
* <tr><td><code>HTML.Tag.MENU</code> <td>BlockAction
* <tr><td><code>HTML.Tag.META</code> <td>MetaAction
* <tr><td><code>HTML.Tag.NOFRAMES</code> <td>BlockAction
* <tr><td><code>HTML.Tag.OBJECT</code> <td>SpecialAction
* <tr><td><code>HTML.Tag.OL</code> <td>BlockAction
* <tr><td><code>HTML.Tag.OPTION</code> <td>FormAction
* <tr><td><code>HTML.Tag.P</code> <td>ParagraphAction
* <tr><td><code>HTML.Tag.PARAM</code> <td>HiddenAction
* <tr><td><code>HTML.Tag.PRE</code> <td>PreAction
* <tr><td><code>HTML.Tag.SAMP</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.SCRIPT</code> <td>HiddenAction
* <tr><td><code>HTML.Tag.SELECT</code> <td>FormAction
* <tr><td><code>HTML.Tag.SMALL</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.STRIKE</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.S</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.STRONG</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.STYLE</code> <td>StyleAction
* <tr><td><code>HTML.Tag.SUB</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.SUP</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.TABLE</code> <td>BlockAction
* <tr><td><code>HTML.Tag.TD</code> <td>BlockAction
* <tr><td><code>HTML.Tag.TEXTAREA</code> <td>FormAction
* <tr><td><code>HTML.Tag.TH</code> <td>BlockAction
* <tr><td><code>HTML.Tag.TITLE</code> <td>TitleAction
* <tr><td><code>HTML.Tag.TR</code> <td>BlockAction
* <tr><td><code>HTML.Tag.TT</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.U</code> <td>CharacterAction
* <tr><td><code>HTML.Tag.UL</code> <td>BlockAction
* <tr><td><code>HTML.Tag.VAR</code> <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.A}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.ADDRESS}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.APPLET}
* <td>HiddenAction
* <tr>
* <th scope="row">{@code HTML.Tag.AREA}
* <td>AreaAction
* <tr>
* <th scope="row">{@code HTML.Tag.B}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.BASE}
* <td>BaseAction
* <tr>
* <th scope="row">{@code HTML.Tag.BASEFONT}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.BIG}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.BLOCKQUOTE}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.BODY}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.BR}
* <td>SpecialAction
* <tr>
* <th scope="row">{@code HTML.Tag.CAPTION}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.CENTER}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.CITE}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.CODE}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.DD}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.DFN}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.DIR}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.DIV}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.DL}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.DT}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.EM}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.FONT}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.FORM}
* <td>As of 1.4 a BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.FRAME}
* <td>SpecialAction
* <tr>
* <th scope="row">{@code HTML.Tag.FRAMESET}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.H1}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.H2}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.H3}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.H4}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.H5}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.H6}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.HEAD}
* <td>HeadAction
* <tr>
* <th scope="row">{@code HTML.Tag.HR}
* <td>SpecialAction
* <tr>
* <th scope="row">{@code HTML.Tag.HTML}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.I}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.IMG}
* <td>SpecialAction
* <tr>
* <th scope="row">{@code HTML.Tag.INPUT}
* <td>FormAction
* <tr>
* <th scope="row">{@code HTML.Tag.ISINDEX}
* <td>IsndexAction
* <tr>
* <th scope="row">{@code HTML.Tag.KBD}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.LI}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.LINK}
* <td>LinkAction
* <tr>
* <th scope="row">{@code HTML.Tag.MAP}
* <td>MapAction
* <tr>
* <th scope="row">{@code HTML.Tag.MENU}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.META}
* <td>MetaAction
* <tr>
* <th scope="row">{@code HTML.Tag.NOFRAMES}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.OBJECT}
* <td>SpecialAction
* <tr>
* <th scope="row">{@code HTML.Tag.OL}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.OPTION}
* <td>FormAction
* <tr>
* <th scope="row">{@code HTML.Tag.P}
* <td>ParagraphAction
* <tr>
* <th scope="row">{@code HTML.Tag.PARAM}
* <td>HiddenAction
* <tr>
* <th scope="row">{@code HTML.Tag.PRE}
* <td>PreAction
* <tr>
* <th scope="row">{@code HTML.Tag.SAMP}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.SCRIPT}
* <td>HiddenAction
* <tr>
* <th scope="row">{@code HTML.Tag.SELECT}
* <td>FormAction
* <tr>
* <th scope="row">{@code HTML.Tag.SMALL}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.STRIKE}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.S}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.STRONG}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.STYLE}
* <td>StyleAction
* <tr>
* <th scope="row">{@code HTML.Tag.SUB}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.SUP}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.TABLE}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.TD}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.TEXTAREA}
* <td>FormAction
* <tr>
* <th scope="row">{@code HTML.Tag.TH}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.TITLE}
* <td>TitleAction
* <tr>
* <th scope="row">{@code HTML.Tag.TR}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.TT}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.U}
* <td>CharacterAction
* <tr>
* <th scope="row">{@code HTML.Tag.UL}
* <td>BlockAction
* <tr>
* <th scope="row">{@code HTML.Tag.VAR}
* <td>CharacterAction
* </tbody>
* </table>
* <p>
@ -3397,45 +3543,44 @@ public class HTMLDocument extends DefaultStyledDocument {
* <caption>Model assignments for the various types of form elements
* </caption>
* <thead>
* <tr>
* <th>Element Type
* <th>Model Type
* </tr>
* <tr>
* <th scope="col">Element Type
* <th scope="col">Model Type
* </thead>
* <tbody>
* <tr>
* <td>input, type button
* <td>{@link DefaultButtonModel}
* <tr>
* <td>input, type checkbox
* <td>{@link javax.swing.JToggleButton.ToggleButtonModel}
* <tr>
* <td>input, type image
* <td>{@link DefaultButtonModel}
* <tr>
* <td>input, type password
* <td>{@link PlainDocument}
* <tr>
* <td>input, type radio
* <td>{@link javax.swing.JToggleButton.ToggleButtonModel}
* <tr>
* <td>input, type reset
* <td>{@link DefaultButtonModel}
* <tr>
* <td>input, type submit
* <td>{@link DefaultButtonModel}
* <tr>
* <td>input, type text or type is null.
* <td>{@link PlainDocument}
* <tr>
* <td>select
* <td>{@link DefaultComboBoxModel} or an {@link DefaultListModel}, with an item type of Option
* <tr>
* <td>textarea
* <td>{@link PlainDocument}
* <tr>
* <th scope="row">input, type button
* <td>{@link DefaultButtonModel}
* <tr>
* <th scope="row">input, type checkbox
* <td>{@link JToggleButton.ToggleButtonModel}
* <tr>
* <th scope="row">input, type image
* <td>{@link DefaultButtonModel}
* <tr>
* <th scope="row">input, type password
* <td>{@link PlainDocument}
* <tr>
* <th scope="row">input, type radio
* <td>{@link JToggleButton.ToggleButtonModel}
* <tr>
* <th scope="row">input, type reset
* <td>{@link DefaultButtonModel}
* <tr>
* <th scope="row">input, type submit
* <td>{@link DefaultButtonModel}
* <tr>
* <th scope="row">input, type text or type is null.
* <td>{@link PlainDocument}
* <tr>
* <th scope="row">select
* <td>{@link DefaultComboBoxModel} or an {@link DefaultListModel},
* with an item type of Option
* <tr>
* <td>textarea
* <td>{@link PlainDocument}
* </tbody>
* </table>
*
*/
public class FormAction extends SpecialAction {

View File

@ -1122,83 +1122,116 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible {
* <caption>Describes the tag and view created by this factory by default
* </caption>
* <thead>
* <tr>
* <th>Tag
* <th>View created
* </tr>
* <tr>
* <th scope="col">Tag
* <th scope="col">View created
* </thead>
* <tbody>
* <tr>
* <td>HTML.Tag.CONTENT<td>InlineView
* </tr><tr>
* <td>HTML.Tag.IMPLIED<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.P<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H1<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H2<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H3<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H4<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H5<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.H6<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.DT<td>javax.swing.text.html.ParagraphView
* </tr><tr>
* <td>HTML.Tag.MENU<td>ListView
* </tr><tr>
* <td>HTML.Tag.DIR<td>ListView
* </tr><tr>
* <td>HTML.Tag.UL<td>ListView
* </tr><tr>
* <td>HTML.Tag.OL<td>ListView
* </tr><tr>
* <td>HTML.Tag.LI<td>BlockView
* </tr><tr>
* <td>HTML.Tag.DL<td>BlockView
* </tr><tr>
* <td>HTML.Tag.DD<td>BlockView
* </tr><tr>
* <td>HTML.Tag.BODY<td>BlockView
* </tr><tr>
* <td>HTML.Tag.HTML<td>BlockView
* </tr><tr>
* <td>HTML.Tag.CENTER<td>BlockView
* </tr><tr>
* <td>HTML.Tag.DIV<td>BlockView
* </tr><tr>
* <td>HTML.Tag.BLOCKQUOTE<td>BlockView
* </tr><tr>
* <td>HTML.Tag.PRE<td>BlockView
* </tr><tr>
* <td>HTML.Tag.BLOCKQUOTE<td>BlockView
* </tr><tr>
* <td>HTML.Tag.PRE<td>BlockView
* </tr><tr>
* <td>HTML.Tag.IMG<td>ImageView
* </tr><tr>
* <td>HTML.Tag.HR<td>HRuleView
* </tr><tr>
* <td>HTML.Tag.BR<td>BRView
* </tr><tr>
* <td>HTML.Tag.TABLE<td>javax.swing.text.html.TableView
* </tr><tr>
* <td>HTML.Tag.INPUT<td>FormView
* </tr><tr>
* <td>HTML.Tag.SELECT<td>FormView
* </tr><tr>
* <td>HTML.Tag.TEXTAREA<td>FormView
* </tr><tr>
* <td>HTML.Tag.OBJECT<td>ObjectView
* </tr><tr>
* <td>HTML.Tag.FRAMESET<td>FrameSetView
* </tr><tr>
* <td>HTML.Tag.FRAME<td>FrameView
* </tr>
* <tr>
* <th scope="row">HTML.Tag.CONTENT
* <td>InlineView
* <tr>
* <th scope="row">HTML.Tag.IMPLIED
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.P
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H1
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H2
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H3
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H4
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H5
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.H6
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.DT
* <td>javax.swing.text.html.ParagraphView
* <tr>
* <th scope="row">HTML.Tag.MENU
* <td>ListView
* <tr>
* <th scope="row">HTML.Tag.DIR
* <td>ListView
* <tr>
* <th scope="row">HTML.Tag.UL
* <td>ListView
* <tr>
* <th scope="row">HTML.Tag.OL
* <td>ListView
* <tr>
* <th scope="row">HTML.Tag.LI
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.DL
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.DD
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.BODY
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.HTML
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.CENTER
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.DIV
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.BLOCKQUOTE
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.PRE
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.BLOCKQUOTE
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.PRE
* <td>BlockView
* <tr>
* <th scope="row">HTML.Tag.IMG
* <td>ImageView
* <tr>
* <th scope="row">HTML.Tag.HR
* <td>HRuleView
* <tr>
* <th scope="row">HTML.Tag.BR
* <td>BRView
* <tr>
* <th scope="row">HTML.Tag.TABLE
* <td>javax.swing.text.html.TableView
* <tr>
* <th scope="row">HTML.Tag.INPUT
* <td>FormView
* <tr>
* <th scope="row">HTML.Tag.SELECT
* <td>FormView
* <tr>
* <th scope="row">HTML.Tag.TEXTAREA
* <td>FormView
* <tr>
* <th scope="row">HTML.Tag.OBJECT
* <td>ObjectView
* <tr>
* <th scope="row">HTML.Tag.FRAMESET
* <td>FrameSetView
* <tr>
* <th scope="row">HTML.Tag.FRAME
* <td>FrameView
* </tbody>
* </table>
*/

View File

@ -65,19 +65,35 @@ import sun.swing.DefaultLookup;
* <caption>Properties</caption>
* <thead>
* <tr>
* <th>Property:
* <th>Key:
* <th scope="col">Property
* <th scope="col">Key
* </tr>
* </thead>
* <tbody>
* <tr><td>"leafIcon"<td>"Tree.leafIcon"
* <tr><td>"closedIcon"<td>"Tree.closedIcon"
* <tr><td>"openIcon"<td>"Tree.openIcon"
* <tr><td>"textSelectionColor"<td>"Tree.selectionForeground"
* <tr><td>"textNonSelectionColor"<td>"Tree.textForeground"
* <tr><td>"backgroundSelectionColor"<td>"Tree.selectionBackground"
* <tr><td>"backgroundNonSelectionColor"<td>"Tree.textBackground"
* <tr><td>"borderSelectionColor"<td>"Tree.selectionBorderColor"
* <tr>
* <th scope="row">"leafIcon"
* <td>"Tree.leafIcon"
* <tr>
* <th scope="row">"closedIcon"
* <td>"Tree.closedIcon"
* <tr>
* <th scope="row">"openIcon"
* <td>"Tree.openIcon"
* <tr>
* <th scope="row">"textSelectionColor"
* <td>"Tree.selectionForeground"
* <tr>
* <th scope="row">"textNonSelectionColor"
* <td>"Tree.textForeground"
* <tr>
* <th scope="row">"backgroundSelectionColor"
* <td>"Tree.selectionBackground"
* <tr>
* <th scope="row">"backgroundNonSelectionColor"
* <td>"Tree.textBackground"
* <tr>
* <th scope="row">"borderSelectionColor"
* <td>"Tree.selectionBorderColor"
* </tbody>
* </table>
* <p>