< prev index next >
src/java.desktop/share/classes/javax/swing/JTextField.java
Print this page
*** 38,96 ****
import java.io.ObjectInputStream;
import java.io.IOException;
import java.io.Serializable;
/**
! * <code>JTextField</code> is a lightweight component that allows the editing
* of a single line of text.
* For information on and examples of using text fields,
* see
* <a href="http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html">How to Use Text Fields</a>
* in <em>The Java Tutorial.</em>
*
* <p>
! * <code>JTextField</code> is intended to be source-compatible
! * with <code>java.awt.TextField</code> where it is reasonable to do so. This
! * component has capabilities not found in the <code>java.awt.TextField</code>
* class. The superclass should be consulted for additional capabilities.
* <p>
! * <code>JTextField</code> has a method to establish the string used as the
* command string for the action event that gets fired. The
! * <code>java.awt.TextField</code> used the text of the field as the command
! * string for the <code>ActionEvent</code>.
! * <code>JTextField</code> will use the command
! * string set with the <code>setActionCommand</code> method if not <code>null</code>,
* otherwise it will use the text of the field as a compatibility with
! * <code>java.awt.TextField</code>.
* <p>
! * The method <code>setEchoChar</code> and <code>getEchoChar</code>
* are not provided directly to avoid a new implementation of a
* pluggable look-and-feel inadvertently exposing password characters.
! * To provide password-like services a separate class <code>JPasswordField</code>
! * extends <code>JTextField</code> to provide this service with an independently
* pluggable look-and-feel.
* <p>
! * The <code>java.awt.TextField</code> could be monitored for changes by adding
! * a <code>TextListener</code> for <code>TextEvent</code>'s.
! * In the <code>JTextComponent</code> based
* components, changes are broadcasted from the model via a
! * <code>DocumentEvent</code> to <code>DocumentListeners</code>.
! * The <code>DocumentEvent</code> gives
* the location of the change and the kind of change if desired.
* The code fragment might look something like:
* <pre><code>
* DocumentListener myListener = ??;
* JTextField myArea = ??;
* myArea.getDocument().addDocumentListener(myListener);
* </code></pre>
* <p>
! * The horizontal alignment of <code>JTextField</code> can be set to be left
* justified, leading justified, centered, right justified or trailing justified.
* Right/trailing justification is useful if the required size
* of the field text is smaller than the size allocated to it.
! * This is determined by the <code>setHorizontalAlignment</code>
! * and <code>getHorizontalAlignment</code> methods. The default
* is to be leading justified.
* <p>
* How the text field consumes VK_ENTER events depends
* on whether the text field has any action listeners.
* If so, then VK_ENTER results in the listeners
--- 38,96 ----
import java.io.ObjectInputStream;
import java.io.IOException;
import java.io.Serializable;
/**
! * {@code JTextField} is a lightweight component that allows the editing
* of a single line of text.
* For information on and examples of using text fields,
* see
* <a href="http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html">How to Use Text Fields</a>
* in <em>The Java Tutorial.</em>
*
* <p>
! * {@code JTextField} is intended to be source-compatible
! * with {@code java.awt.TextField} where it is reasonable to do so. This
! * component has capabilities not found in the {@code java.awt.TextField}
* class. The superclass should be consulted for additional capabilities.
* <p>
! * {@code JTextField} has a method to establish the string used as the
* command string for the action event that gets fired. The
! * {@code java.awt.TextField} used the text of the field as the command
! * string for the {@code ActionEvent}.
! * {@code JTextField} will use the command
! * string set with the {@code setActionCommand} method if not {@code null},
* otherwise it will use the text of the field as a compatibility with
! * {@code java.awt.TextField}.
* <p>
! * The method {@code setEchoChar} and {@code getEchoChar}
* are not provided directly to avoid a new implementation of a
* pluggable look-and-feel inadvertently exposing password characters.
! * To provide password-like services a separate class {@code JPasswordField}
! * extends {@code JTextField} to provide this service with an independently
* pluggable look-and-feel.
* <p>
! * The {@code java.awt.TextField} could be monitored for changes by adding
! * a {@code TextListener} for {@code TextEvent}'s.
! * In the {@code JTextComponent} based
* components, changes are broadcasted from the model via a
! * {@code DocumentEvent} to {@code DocumentListeners}.
! * The {@code DocumentEvent} gives
* the location of the change and the kind of change if desired.
* The code fragment might look something like:
* <pre><code>
* DocumentListener myListener = ??;
* JTextField myArea = ??;
* myArea.getDocument().addDocumentListener(myListener);
* </code></pre>
* <p>
! * The horizontal alignment of {@code JTextField} can be set to be left
* justified, leading justified, centered, right justified or trailing justified.
* Right/trailing justification is useful if the required size
* of the field text is smaller than the size allocated to it.
! * This is determined by the {@code setHorizontalAlignment}
! * and {@code getHorizontalAlignment} methods. The default
* is to be leading justified.
* <p>
* How the text field consumes VK_ENTER events depends
* on whether the text field has any action listeners.
* If so, then VK_ENTER results in the listeners
*** 147,157 ****
* Serialized objects of this class will not be compatible with
* future Swing releases. The current serialization support is
* appropriate for short term storage or RMI between applications running
* the same version of Swing. As of 1.4, support for long term storage
* of all JavaBeans™
! * has been added to the <code>java.beans</code> package.
* Please see {@link java.beans.XMLEncoder}.
*
* @beaninfo
* attribute: isContainer false
* description: A component which allows for the editing of a single line of text.
--- 147,157 ----
* Serialized objects of this class will not be compatible with
* future Swing releases. The current serialization support is
* appropriate for short term storage or RMI between applications running
* the same version of Swing. As of 1.4, support for long term storage
* of all JavaBeans™
! * has been added to the {@code java.beans} package.
* Please see {@link java.beans.XMLEncoder}.
*
* @beaninfo
* attribute: isContainer false
* description: A component which allows for the editing of a single line of text.
*** 164,197 ****
*/
@SuppressWarnings("serial") // Same-version serialization only
public class JTextField extends JTextComponent implements SwingConstants {
/**
! * Constructs a new <code>TextField</code>. A default model is created,
! * the initial string is <code>null</code>,
* and the number of columns is set to 0.
*/
public JTextField() {
this(null, null, 0);
}
/**
! * Constructs a new <code>TextField</code> initialized with the
* specified text. A default model is created and the number of
* columns is 0.
*
! * @param text the text to be displayed, or <code>null</code>
*/
public JTextField(String text) {
this(null, text, 0);
}
/**
! * Constructs a new empty <code>TextField</code> with the specified
* number of columns.
* A default model is created and the initial string is set to
! * <code>null</code>.
*
* @param columns the number of columns to use to calculate
* the preferred width; if columns is set to zero, the
* preferred width will be whatever naturally results from
* the component implementation
--- 164,197 ----
*/
@SuppressWarnings("serial") // Same-version serialization only
public class JTextField extends JTextComponent implements SwingConstants {
/**
! * Constructs a new {@code TextField}. A default model is created,
! * the initial string is {@code null},
* and the number of columns is set to 0.
*/
public JTextField() {
this(null, null, 0);
}
/**
! * Constructs a new {@code TextField} initialized with the
* specified text. A default model is created and the number of
* columns is 0.
*
! * @param text the text to be displayed, or {@code null}
*/
public JTextField(String text) {
this(null, text, 0);
}
/**
! * Constructs a new empty {@code TextField} with the specified
* number of columns.
* A default model is created and the initial string is set to
! * {@code null}.
*
* @param columns the number of columns to use to calculate
* the preferred width; if columns is set to zero, the
* preferred width will be whatever naturally results from
* the component implementation
*** 199,236 ****
public JTextField(int columns) {
this(null, null, columns);
}
/**
! * Constructs a new <code>TextField</code> initialized with the
* specified text and columns. A default model is created.
*
! * @param text the text to be displayed, or <code>null</code>
* @param columns the number of columns to use to calculate
* the preferred width; if columns is set to zero, the
* preferred width will be whatever naturally results from
* the component implementation
*/
public JTextField(String text, int columns) {
this(null, text, columns);
}
/**
! * Constructs a new <code>JTextField</code> that uses the given text
* storage model and the given number of columns.
* This is the constructor through which the other constructors feed.
! * If the document is <code>null</code>, a default model is created.
*
! * @param doc the text storage to use; if this is <code>null</code>,
* a default will be provided by calling the
! * <code>createDefaultModel</code> method
! * @param text the initial string to display, or <code>null</code>
* @param columns the number of columns to use to calculate
! * the preferred width >= 0; if <code>columns</code>
* is set to zero, the preferred width will be whatever
* naturally results from the component implementation
! * @exception IllegalArgumentException if <code>columns</code> < 0
*/
public JTextField(Document doc, String text, int columns) {
if (columns < 0) {
throw new IllegalArgumentException("columns less than zero.");
}
--- 199,236 ----
public JTextField(int columns) {
this(null, null, columns);
}
/**
! * Constructs a new {@code TextField} initialized with the
* specified text and columns. A default model is created.
*
! * @param text the text to be displayed, or {@code null}
* @param columns the number of columns to use to calculate
* the preferred width; if columns is set to zero, the
* preferred width will be whatever naturally results from
* the component implementation
*/
public JTextField(String text, int columns) {
this(null, text, columns);
}
/**
! * Constructs a new {@code JTextField} that uses the given text
* storage model and the given number of columns.
* This is the constructor through which the other constructors feed.
! * If the document is {@code null}, a default model is created.
*
! * @param doc the text storage to use; if this is {@code null},
* a default will be provided by calling the
! * {@code createDefaultModel} method
! * @param text the initial string to display, or {@code null}
* @param columns the number of columns to use to calculate
! * the preferred width >= 0; if {@code columns}
* is set to zero, the preferred width will be whatever
* naturally results from the component implementation
! * @exception IllegalArgumentException if {@code columns < 0}
*/
public JTextField(Document doc, String text, int columns) {
if (columns < 0) {
throw new IllegalArgumentException("columns less than zero.");
}
*** 277,293 ****
}
super.setDocument(doc);
}
/**
! * Calls to <code>revalidate</code> that come from within the
* textfield itself will
* be handled by validating the textfield, unless the textfield
! * is contained within a <code>JViewport</code>,
* in which case this returns false.
*
! * @return if the parent of this textfield is a <code>JViewPort</code>
* return false, otherwise return true
*
* @see JComponent#revalidate
* @see JComponent#isValidateRoot
* @see java.awt.Container#isValidateRoot
--- 277,293 ----
}
super.setDocument(doc);
}
/**
! * Calls to {@code revalidate} that come from within the
* textfield itself will
* be handled by validating the textfield, unless the textfield
! * is contained within a {@code JViewport},
* in which case this returns false.
*
! * @return if the parent of this textfield is a {@code JViewPort}
* return false, otherwise return true
*
* @see JComponent#revalidate
* @see JComponent#isValidateRoot
* @see java.awt.Container#isValidateRoot
*** 300,314 ****
/**
* Returns the horizontal alignment of the text.
* Valid keys are:
* <ul>
! * <li><code>JTextField.LEFT</code>
! * <li><code>JTextField.CENTER</code>
! * <li><code>JTextField.RIGHT</code>
! * <li><code>JTextField.LEADING</code>
! * <li><code>JTextField.TRAILING</code>
* </ul>
*
* @return the horizontal alignment
*/
public int getHorizontalAlignment() {
--- 300,314 ----
/**
* Returns the horizontal alignment of the text.
* Valid keys are:
* <ul>
! * <li>{@code JTextField.LEFT}
! * <li>{@code JTextField.CENTER}
! * <li>{@code JTextField.RIGHT}
! * <li>{@code JTextField.LEADING}
! * <li>{@code JTextField.TRAILING}
* </ul>
*
* @return the horizontal alignment
*/
public int getHorizontalAlignment() {
*** 317,338 ****
/**
* Sets the horizontal alignment of the text.
* Valid keys are:
* <ul>
! * <li><code>JTextField.LEFT</code>
! * <li><code>JTextField.CENTER</code>
! * <li><code>JTextField.RIGHT</code>
! * <li><code>JTextField.LEADING</code>
! * <li><code>JTextField.TRAILING</code>
* </ul>
! * <code>invalidate</code> and <code>repaint</code> are called when the
* alignment is set,
! * and a <code>PropertyChange</code> event ("horizontalAlignment") is fired.
*
* @param alignment the alignment
! * @exception IllegalArgumentException if <code>alignment</code>
* is not a valid key
* @beaninfo
* preferred: true
* bound: true
* description: Set the field alignment to LEFT, CENTER, RIGHT,
--- 317,338 ----
/**
* Sets the horizontal alignment of the text.
* Valid keys are:
* <ul>
! * <li>{@code JTextField.LEFT}
! * <li>{@code JTextField.CENTER}
! * <li>{@code JTextField.RIGHT}
! * <li>{@code JTextField.LEADING}
! * <li>{@code JTextField.TRAILING}
* </ul>
! * {@code invalidate} and {@code repaint} are called when the
* alignment is set,
! * and a {@code PropertyChange} event ("horizontalAlignment") is fired.
*
* @param alignment the alignment
! * @exception IllegalArgumentException if {@code alignment}
* is not a valid key
* @beaninfo
* preferred: true
* bound: true
* description: Set the field alignment to LEFT, CENTER, RIGHT,
*** 356,388 ****
}
/**
* Creates the default implementation of the model
* to be used at construction if one isn't explicitly
! * given. An instance of <code>PlainDocument</code> is returned.
*
* @return the default model implementation
*/
protected Document createDefaultModel() {
return new PlainDocument();
}
/**
! * Returns the number of columns in this <code>TextField</code>.
*
* @return the number of columns >= 0
*/
public int getColumns() {
return columns;
}
/**
! * Sets the number of columns in this <code>TextField</code>,
* and then invalidate the layout.
*
* @param columns the number of columns >= 0
! * @exception IllegalArgumentException if <code>columns</code>
* is less than 0
* @beaninfo
* description: the number of columns preferred for display
*/
public void setColumns(int columns) {
--- 356,388 ----
}
/**
* Creates the default implementation of the model
* to be used at construction if one isn't explicitly
! * given. An instance of {@code PlainDocument} is returned.
*
* @return the default model implementation
*/
protected Document createDefaultModel() {
return new PlainDocument();
}
/**
! * Returns the number of columns in this {@code TextField}.
*
* @return the number of columns >= 0
*/
public int getColumns() {
return columns;
}
/**
! * Sets the number of columns in this {@code TextField},
* and then invalidate the layout.
*
* @param columns the number of columns >= 0
! * @exception IllegalArgumentException if {@code columns}
* is less than 0
* @beaninfo
* description: the number of columns preferred for display
*/
public void setColumns(int columns) {
*** 413,424 ****
}
return columnWidth;
}
/**
! * Returns the preferred size <code>Dimensions</code> needed for this
! * <code>TextField</code>. If a non-zero number of columns has been
* set, the width is set to the columns multiplied by
* the column width.
*
* @return the dimension of this textfield
*/
--- 413,424 ----
}
return columnWidth;
}
/**
! * Returns the preferred size {@code Dimensions} needed for this
! * {@code TextField}. If a non-zero number of columns has been
* set, the width is set to the columns multiplied by
* the column width.
*
* @return the dimension of this textfield
*/
*** 433,443 ****
}
/**
* Sets the current font. This removes cached row height and column
* width so the new font will be reflected.
! * <code>revalidate</code> is called after setting the font.
*
* @param f the new font
*/
public void setFont(Font f) {
super.setFont(f);
--- 433,443 ----
}
/**
* Sets the current font. This removes cached row height and column
* width so the new font will be reflected.
! * {@code revalidate} is called after setting the font.
*
* @param f the new font
*/
public void setFont(Font f) {
super.setFont(f);
*** 467,480 ****
listenerList.remove(ActionListener.class, l);
}
}
/**
! * Returns an array of all the <code>ActionListener</code>s added
* to this JTextField with addActionListener().
*
! * @return all of the <code>ActionListener</code>s added or an empty
* array if no listeners have been added
* @since 1.4
*/
public synchronized ActionListener[] getActionListeners() {
return listenerList.getListeners(ActionListener.class);
--- 467,480 ----
listenerList.remove(ActionListener.class, l);
}
}
/**
! * Returns an array of all the {@code ActionListener}s added
* to this JTextField with addActionListener().
*
! * @return all of the {@code ActionListener}s added or an empty
* array if no listeners have been added
* @since 1.4
*/
public synchronized ActionListener[] getActionListeners() {
return listenerList.getListeners(ActionListener.class);
*** 523,560 ****
private Action action;
private PropertyChangeListener actionPropertyChangeListener;
/**
! * Sets the <code>Action</code> for the <code>ActionEvent</code> source.
! * The new <code>Action</code> replaces
! * any previously set <code>Action</code> but does not affect
! * <code>ActionListeners</code> independently
! * added with <code>addActionListener</code>.
! * If the <code>Action</code> is already a registered
! * <code>ActionListener</code>
! * for the <code>ActionEvent</code> source, it is not re-registered.
* <p>
! * Setting the <code>Action</code> results in immediately changing
* all the properties described in <a href="Action.html#buttonActions">
! * Swing Components Supporting <code>Action</code></a>.
* Subsequently, the textfield's properties are automatically updated
! * as the <code>Action</code>'s properties change.
* <p>
* This method uses three other methods to set
! * and help track the <code>Action</code>'s property values.
! * It uses the <code>configurePropertiesFromAction</code> method
* to immediately change the textfield's properties.
! * To track changes in the <code>Action</code>'s property values,
! * this method registers the <code>PropertyChangeListener</code>
! * returned by <code>createActionPropertyChangeListener</code>. The
* default {@code PropertyChangeListener} invokes the
* {@code actionPropertyChanged} method when a property in the
* {@code Action} changes.
*
! * @param a the <code>Action</code> for the <code>JTextField</code>,
! * or <code>null</code>
* @since 1.3
* @see Action
* @see #getAction
* @see #configurePropertiesFromAction
* @see #createActionPropertyChangeListener
--- 523,560 ----
private Action action;
private PropertyChangeListener actionPropertyChangeListener;
/**
! * Sets the {@code Action} for the {@code ActionEvent} source.
! * The new {@code Action} replaces
! * any previously set {@code Action} but does not affect
! * {@code ActionListeners} independently
! * added with {@code addActionListener}.
! * If the {@code Action} is already a registered
! * {@code ActionListener}
! * for the {@code ActionEvent} source, it is not re-registered.
* <p>
! * Setting the {@code Action} results in immediately changing
* all the properties described in <a href="Action.html#buttonActions">
! * Swing Components Supporting {@code Action}</a>.
* Subsequently, the textfield's properties are automatically updated
! * as the {@code Action}'s properties change.
* <p>
* This method uses three other methods to set
! * and help track the {@code Action}'s property values.
! * It uses the {@code configurePropertiesFromAction} method
* to immediately change the textfield's properties.
! * To track changes in the {@code Action}'s property values,
! * this method registers the {@code PropertyChangeListener}
! * returned by {@code createActionPropertyChangeListener}. The
* default {@code PropertyChangeListener} invokes the
* {@code actionPropertyChanged} method when a property in the
* {@code Action} changes.
*
! * @param a the {@code Action} for the {@code JTextField},
! * or {@code null}
* @since 1.3
* @see Action
* @see #getAction
* @see #configurePropertiesFromAction
* @see #createActionPropertyChangeListener
*** 597,628 ****
}
return isListener;
}
/**
! * Returns the currently set <code>Action</code> for this
! * <code>ActionEvent</code> source, or <code>null</code>
! * if no <code>Action</code> is set.
*
! * @return the <code>Action</code> for this <code>ActionEvent</code> source,
! * or <code>null</code>
* @since 1.3
* @see Action
* @see #setAction
*/
public Action getAction() {
return action;
}
/**
* Sets the properties on this textfield to match those in the specified
! * <code>Action</code>. Refer to <a href="Action.html#buttonActions">
! * Swing Components Supporting <code>Action</code></a> for more
* details as to which properties this sets.
*
! * @param a the <code>Action</code> from which to get the properties,
! * or <code>null</code>
* @since 1.3
* @see Action
* @see #setAction
*/
protected void configurePropertiesFromAction(Action a) {
--- 597,628 ----
}
return isListener;
}
/**
! * Returns the currently set {@code Action} for this
! * {@code ActionEvent} source, or {@code null}
! * if no {@code Action} is set.
*
! * @return the {@code Action} for this {@code ActionEvent} source,
! * or {@code null}
* @since 1.3
* @see Action
* @see #setAction
*/
public Action getAction() {
return action;
}
/**
* Sets the properties on this textfield to match those in the specified
! * {@code Action}. Refer to <a href="Action.html#buttonActions">
! * Swing Components Supporting {@code Action}</a> for more
* details as to which properties this sets.
*
! * @param a the {@code Action} from which to get the properties,
! * or {@code null}
* @since 1.3
* @see Action
* @see #setAction
*/
protected void configurePropertiesFromAction(Action a) {
*** 639,652 ****
* need to invoke this. Subclasses that support additional {@code Action}
* properties should override this and
* {@code configurePropertiesFromAction}.
* <p>
* Refer to the table at <a href="Action.html#buttonActions">
! * Swing Components Supporting <code>Action</code></a> for a list of
* the properties this method sets.
*
! * @param action the <code>Action</code> associated with this textfield
* @param propertyName the name of the property that changed
* @since 1.6
* @see Action
* @see #configurePropertiesFromAction
*/
--- 639,652 ----
* need to invoke this. Subclasses that support additional {@code Action}
* properties should override this and
* {@code configurePropertiesFromAction}.
* <p>
* Refer to the table at <a href="Action.html#buttonActions">
! * Swing Components Supporting {@code Action}</a> for a list of
* the properties this method sets.
*
! * @param action the {@code Action} associated with this textfield
* @param propertyName the name of the property that changed
* @since 1.6
* @see Action
* @see #configurePropertiesFromAction
*/
*** 664,680 ****
setActionCommand((action == null) ? null :
(String)action.getValue(Action.ACTION_COMMAND_KEY));
}
/**
! * Creates and returns a <code>PropertyChangeListener</code> that is
* responsible for listening for changes from the specified
! * <code>Action</code> and updating the appropriate properties.
* <p>
* <b>Warning:</b> If you subclass this do not create an anonymous
* inner class. If you do the lifetime of the textfield will be tied to
! * that of the <code>Action</code>.
*
* @param a the textfield's action
* @return a {@code PropertyChangeListener} that is responsible for
* listening for changes from the specified {@code Action} and
* updating the appropriate properties
--- 664,680 ----
setActionCommand((action == null) ? null :
(String)action.getValue(Action.ACTION_COMMAND_KEY));
}
/**
! * Creates and returns a {@code PropertyChangeListener} that is
* responsible for listening for changes from the specified
! * {@code Action} and updating the appropriate properties.
* <p>
* <b>Warning:</b> If you subclass this do not create an anonymous
* inner class. If you do the lifetime of the textfield will be tied to
! * that of the {@code Action}.
*
* @param a the textfield's action
* @return a {@code PropertyChangeListener} that is responsible for
* listening for changes from the specified {@code Action} and
* updating the appropriate properties
*** 716,726 ****
return TextAction.augmentList(super.getActions(), defaultActions);
}
/**
* Processes action events occurring on this textfield by
! * dispatching them to any registered <code>ActionListener</code> objects.
* This is normally called by the controller registered with
* textfield.
*/
public void postActionEvent() {
fireActionPerformed();
--- 716,726 ----
return TextAction.augmentList(super.getActions(), defaultActions);
}
/**
* Processes action events occurring on this textfield by
! * dispatching them to any registered {@code ActionListener} objects.
* This is normally called by the controller registered with
* textfield.
*/
public void postActionEvent() {
fireActionPerformed();
*** 735,745 ****
* the area that was allocated to the field.
*
* <p>
* The fields look-and-feel implementation manages
* the values of the minimum, maximum, and extent
! * properties on the <code>BoundedRangeModel</code>.
*
* @return the visibility
* @see BoundedRangeModel
*/
public BoundedRangeModel getHorizontalVisibility() {
--- 735,745 ----
* the area that was allocated to the field.
*
* <p>
* The fields look-and-feel implementation manages
* the values of the minimum, maximum, and extent
! * properties on the {@code BoundedRangeModel}.
*
* @return the visibility
* @see BoundedRangeModel
*/
public BoundedRangeModel getHorizontalVisibility() {
*** 782,792 ****
visibility.setValue(x1 - visibility.getExtent());
}
}
/**
! * Returns true if the receiver has an <code>ActionListener</code>
* installed.
*/
boolean hasActionListener() {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
--- 782,792 ----
visibility.setValue(x1 - visibility.getExtent());
}
}
/**
! * Returns true if the receiver has an {@code ActionListener}
* installed.
*/
boolean hasActionListener() {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
*** 859,870 ****
}
/**
! * See <code>readObject</code> and <code>writeObject</code> in
! * <code>JComponent</code> for more
* information about serialization in Swing.
*/
private void writeObject(ObjectOutputStream s) throws IOException {
s.defaultWriteObject();
if (getUIClassID().equals(uiClassID)) {
--- 859,870 ----
}
/**
! * See {@code readObject} and {@code writeObject} in
! * {@code JComponent} for more
* information about serialization in Swing.
*/
private void writeObject(ObjectOutputStream s) throws IOException {
s.defaultWriteObject();
if (getUIClassID().equals(uiClassID)) {
*** 876,892 ****
}
}
/**
! * Returns a string representation of this <code>JTextField</code>.
* This method is intended to be used only for debugging purposes,
* and the content and format of the returned string may vary between
* implementations. The returned string may be empty but may not
! * be <code>null</code>.
*
! * @return a string representation of this <code>JTextField</code>
*/
protected String paramString() {
String horizontalAlignmentString;
if (horizontalAlignment == LEFT) {
horizontalAlignmentString = "LEFT";
--- 876,892 ----
}
}
/**
! * Returns a string representation of this {@code JTextField}.
* This method is intended to be used only for debugging purposes,
* and the content and format of the returned string may vary between
* implementations. The returned string may be empty but may not
! * be {@code null}.
*
! * @return a string representation of this {@code JTextField}
*/
protected String paramString() {
String horizontalAlignmentString;
if (horizontalAlignment == LEFT) {
horizontalAlignmentString = "LEFT";
*** 914,953 ****
// Accessibility support
////////////////
/**
! * Gets the <code>AccessibleContext</code> associated with this
! * <code>JTextField</code>. For <code>JTextFields</code>,
! * the <code>AccessibleContext</code> takes the form of an
! * <code>AccessibleJTextField</code>.
! * A new <code>AccessibleJTextField</code> instance is created
* if necessary.
*
! * @return an <code>AccessibleJTextField</code> that serves as the
! * <code>AccessibleContext</code> of this <code>JTextField</code>
*/
public AccessibleContext getAccessibleContext() {
if (accessibleContext == null) {
accessibleContext = new AccessibleJTextField();
}
return accessibleContext;
}
/**
* This class implements accessibility support for the
! * <code>JTextField</code> class. It provides an implementation of the
* Java Accessibility API appropriate to text field user-interface
* elements.
* <p>
* <strong>Warning:</strong>
* Serialized objects of this class will not be compatible with
* future Swing releases. The current serialization support is
* appropriate for short term storage or RMI between applications running
* the same version of Swing. As of 1.4, support for long term storage
* of all JavaBeans™
! * has been added to the <code>java.beans</code> package.
* Please see {@link java.beans.XMLEncoder}.
*/
@SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTextField extends AccessibleJTextComponent {
--- 914,953 ----
// Accessibility support
////////////////
/**
! * Gets the {@code AccessibleContext} associated with this
! * {@code JTextField}. For {@code JTextFields},
! * the {@code AccessibleContext} takes the form of an
! * {@code AccessibleJTextField}.
! * A new {@code AccessibleJTextField} instance is created
* if necessary.
*
! * @return an {@code AccessibleJTextField} that serves as the
! * {@code AccessibleContext} of this {@code JTextField}
*/
public AccessibleContext getAccessibleContext() {
if (accessibleContext == null) {
accessibleContext = new AccessibleJTextField();
}
return accessibleContext;
}
/**
* This class implements accessibility support for the
! * {@code JTextField} class. It provides an implementation of the
* Java Accessibility API appropriate to text field user-interface
* elements.
* <p>
* <strong>Warning:</strong>
* Serialized objects of this class will not be compatible with
* future Swing releases. The current serialization support is
* appropriate for short term storage or RMI between applications running
* the same version of Swing. As of 1.4, support for long term storage
* of all JavaBeans™
! * has been added to the {@code java.beans} package.
* Please see {@link java.beans.XMLEncoder}.
*/
@SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTextField extends AccessibleJTextComponent {
< prev index next >