Constructors Summary |
---|
public JTextField()Constructs a new TextField . A default model is created,
the initial string is null ,
and the number of columns is set to 0.
this(null, null, 0);
|
public JTextField(String text)Constructs a new TextField initialized with the
specified text. A default model is created and the number of
columns is 0.
this(null, text, 0);
|
public JTextField(int columns)Constructs a new empty TextField with the specified
number of columns.
A default model is created and the initial string is set to
null .
this(null, null, columns);
|
public JTextField(String text, int columns)Constructs a new TextField initialized with the
specified text and columns. A default model is created.
this(null, text, columns);
|
public JTextField(Document doc, String text, int columns)Constructs a new 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 null , a default model is created.
if (columns < 0) {
throw new IllegalArgumentException("columns less than zero.");
}
visibility = new DefaultBoundedRangeModel();
visibility.addChangeListener(new ScrollRepainter());
this.columns = columns;
if (doc == null) {
doc = createDefaultModel();
}
setDocument(doc);
if (text != null) {
setText(text);
}
|
Methods Summary |
---|
protected void | actionPropertyChanged(javax.swing.Action action, java.lang.String propertyName)Updates the textfield's state in response to property changes in
associated action. This method is invoked from the
{@code PropertyChangeListener} returned from
{@code createActionPropertyChangeListener}. Subclasses do not normally
need to invoke this. Subclasses that support additional {@code Action}
properties should override this and
{@code configurePropertiesFromAction}.
Refer to the table at
Swing Components Supporting Action for a list of
the properties this method sets.
if (propertyName == Action.ACTION_COMMAND_KEY) {
setActionCommandFromAction(action);
} else if (propertyName == "enabled") {
AbstractAction.setEnabledFromAction(this, action);
} else if (propertyName == Action.SHORT_DESCRIPTION) {
AbstractAction.setToolTipTextFromAction(this, action);
}
|
public synchronized void | addActionListener(java.awt.event.ActionListener l)Adds the specified action listener to receive
action events from this textfield.
listenerList.add(ActionListener.class, l);
|
protected void | configurePropertiesFromAction(javax.swing.Action a)Sets the properties on this textfield to match those in the specified
Action . Refer to
Swing Components Supporting Action for more
details as to which properties this sets.
AbstractAction.setEnabledFromAction(this, a);
AbstractAction.setToolTipTextFromAction(this, a);
setActionCommandFromAction(a);
|
protected java.beans.PropertyChangeListener | createActionPropertyChangeListener(javax.swing.Action a)Creates and returns a PropertyChangeListener that is
responsible for listening for changes from the specified
Action and updating the appropriate properties.
Warning: 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 Action .
return new TextFieldActionPropertyChangeListener(this, a);
|
protected javax.swing.text.Document | createDefaultModel()Creates the default implementation of the model
to be used at construction if one isn't explicitly
given. An instance of PlainDocument is returned.
return new PlainDocument();
|
protected void | fireActionPerformed()Notifies all listeners that have registered interest for
notification on this event type. The event instance
is lazily created.
The listener list is processed in last to
first order.
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
int modifiers = 0;
AWTEvent currentEvent = EventQueue.getCurrentEvent();
if (currentEvent instanceof InputEvent) {
modifiers = ((InputEvent)currentEvent).getModifiers();
} else if (currentEvent instanceof ActionEvent) {
modifiers = ((ActionEvent)currentEvent).getModifiers();
}
ActionEvent e =
new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
(command != null) ? command : getText(),
EventQueue.getMostRecentEventTime(), modifiers);
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==ActionListener.class) {
((ActionListener)listeners[i+1]).actionPerformed(e);
}
}
|
public javax.accessibility.AccessibleContext | getAccessibleContext()Gets the AccessibleContext associated with this
JTextField . For JTextFields ,
the AccessibleContext takes the form of an
AccessibleJTextField .
A new AccessibleJTextField instance is created
if necessary.
if (accessibleContext == null) {
accessibleContext = new AccessibleJTextField();
}
return accessibleContext;
|
public javax.swing.Action | getAction()Returns the currently set Action for this
ActionEvent source, or null
if no Action is set.
return action;
|
public synchronized java.awt.event.ActionListener[] | getActionListeners()Returns an array of all the ActionListener s added
to this JTextField with addActionListener().
return (ActionListener[])listenerList.getListeners(
ActionListener.class);
|
public javax.swing.Action[] | getActions()Fetches the command list for the editor. This is
the list of commands supported by the plugged-in UI
augmented by the collection of commands that the
editor itself supports. These are useful for binding
to events, such as in a keymap.
return TextAction.augmentList(super.getActions(), defaultActions);
|
protected int | getColumnWidth()Returns the column width.
The meaning of what a column is can be considered a fairly weak
notion for some fonts. This method is used to define the width
of a column. By default this is defined to be the width of the
character m for the font used. This method can be
redefined to be some alternative amount
if (columnWidth == 0) {
FontMetrics metrics = getFontMetrics(getFont());
columnWidth = metrics.charWidth('m");
}
return columnWidth;
|
public int | getColumns()Returns the number of columns in this TextField .
return columns;
|
public int | getHorizontalAlignment()Returns the horizontal alignment of the text.
Valid keys are:
JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
return horizontalAlignment;
|
public javax.swing.BoundedRangeModel | getHorizontalVisibility()Gets the visibility of the text field. This can
be adjusted to change the location of the visible
area if the size of the field is greater than
the area that was allocated to the field.
The fields look-and-feel implementation manages
the values of the minimum, maximum, and extent
properties on the BoundedRangeModel .
return visibility;
|
public java.awt.Dimension | getPreferredSize()Returns the preferred size Dimensions needed for this
TextField . If a non-zero number of columns has been
set, the width is set to the columns multiplied by
the column width.
Dimension size = super.getPreferredSize();
if (columns != 0) {
Insets insets = getInsets();
size.width = columns * getColumnWidth() +
insets.left + insets.right;
}
return size;
|
public int | getScrollOffset()Gets the scroll offset, in pixels.
return visibility.getValue();
|
public java.lang.String | getUIClassID()Gets the class ID for a UI.
return uiClassID;
|
boolean | hasActionListener()Returns true if the receiver has an ActionListener
installed.
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==ActionListener.class) {
return true;
}
}
return false;
|
private boolean | isListener(java.lang.Class c, java.awt.event.ActionListener a)
boolean isListener = false;
Object[] listeners = listenerList.getListenerList();
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==c && listeners[i+1]==a) {
isListener=true;
}
}
return isListener;
|
public boolean | isValidateRoot()Calls to revalidate that come from within the
textfield itself will
be handled by validating the textfield, unless the textfield
is contained within a JViewport ,
in which case this returns false.
Component parent = getParent();
if (parent instanceof JViewport) {
return false;
}
return true;
|
protected java.lang.String | paramString()Returns a string representation of this 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 null .
String horizontalAlignmentString;
if (horizontalAlignment == LEFT) {
horizontalAlignmentString = "LEFT";
} else if (horizontalAlignment == CENTER) {
horizontalAlignmentString = "CENTER";
} else if (horizontalAlignment == RIGHT) {
horizontalAlignmentString = "RIGHT";
} else if (horizontalAlignment == LEADING) {
horizontalAlignmentString = "LEADING";
} else if (horizontalAlignment == TRAILING) {
horizontalAlignmentString = "TRAILING";
} else horizontalAlignmentString = "";
String commandString = (command != null ?
command : "");
return super.paramString() +
",columns=" + columns +
",columnWidth=" + columnWidth +
",command=" + commandString +
",horizontalAlignment=" + horizontalAlignmentString;
|
public void | postActionEvent()Processes action events occurring on this textfield by
dispatching them to any registered ActionListener objects.
This is normally called by the controller registered with
textfield.
fireActionPerformed();
|
public synchronized void | removeActionListener(java.awt.event.ActionListener l)Removes the specified action listener so that it no longer
receives action events from this textfield.
if ((l != null) && (getAction() == l)) {
setAction(null);
} else {
listenerList.remove(ActionListener.class, l);
}
|
public void | scrollRectToVisible(java.awt.Rectangle r)Scrolls the field left or right.
// convert to coordinate system of the bounded range
Insets i = getInsets();
int x0 = r.x + visibility.getValue() - i.left;
int x1 = x0 + r.width;
if (x0 < visibility.getValue()) {
// Scroll to the left
visibility.setValue(x0);
} else if(x1 > visibility.getValue() + visibility.getExtent()) {
// Scroll to the right
visibility.setValue(x1 - visibility.getExtent());
}
|
public void | setAction(javax.swing.Action a)Sets the Action for the ActionEvent source.
The new Action replaces
any previously set Action but does not affect
ActionListeners independently
added with addActionListener .
If the Action is already a registered
ActionListener
for the ActionEvent source, it is not re-registered.
Setting the Action results in immediately changing
all the properties described in
Swing Components Supporting Action .
Subsequently, the textfield's properties are automatically updated
as the Action 's properties change.
This method uses three other methods to set
and help track the Action 's property values.
It uses the configurePropertiesFromAction method
to immediately change the textfield's properties.
To track changes in the Action 's property values,
this method registers the PropertyChangeListener
returned by createActionPropertyChangeListener . The
default {@code PropertyChangeListener} invokes the
{@code actionPropertyChanged} method when a property in the
{@code Action} changes.
Action oldValue = getAction();
if (action==null || !action.equals(a)) {
action = a;
if (oldValue!=null) {
removeActionListener(oldValue);
oldValue.removePropertyChangeListener(actionPropertyChangeListener);
actionPropertyChangeListener = null;
}
configurePropertiesFromAction(action);
if (action!=null) {
// Don't add if it is already a listener
if (!isListener(ActionListener.class, action)) {
addActionListener(action);
}
// Reverse linkage:
actionPropertyChangeListener = createActionPropertyChangeListener(action);
action.addPropertyChangeListener(actionPropertyChangeListener);
}
firePropertyChange("action", oldValue, action);
}
|
public void | setActionCommand(java.lang.String command)Sets the command string used for action events.
this.command = command;
|
private void | setActionCommandFromAction(javax.swing.Action action)
setActionCommand((action == null) ? null :
(String)action.getValue(Action.ACTION_COMMAND_KEY));
|
public void | setColumns(int columns)Sets the number of columns in this TextField ,
and then invalidate the layout.
int oldVal = this.columns;
if (columns < 0) {
throw new IllegalArgumentException("columns less than zero.");
}
if (columns != oldVal) {
this.columns = columns;
invalidate();
}
|
public void | setDocument(javax.swing.text.Document doc)Associates the editor with a text document.
The currently registered factory is used to build a view for
the document, which gets displayed by the editor after revalidation.
A PropertyChange event ("document") is propagated to each listener.
if (doc != null) {
doc.putProperty("filterNewlines", Boolean.TRUE);
}
super.setDocument(doc);
|
public void | setFont(java.awt.Font f)Sets the current font. This removes cached row height and column
width so the new font will be reflected.
revalidate is called after setting the font.
super.setFont(f);
columnWidth = 0;
|
public void | setHorizontalAlignment(int alignment)Sets the horizontal alignment of the text.
Valid keys are:
JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
invalidate and repaint are called when the
alignment is set,
and a PropertyChange event ("horizontalAlignment") is fired.
if (alignment == horizontalAlignment) return;
int oldValue = horizontalAlignment;
if ((alignment == LEFT) || (alignment == CENTER) ||
(alignment == RIGHT)|| (alignment == LEADING) ||
(alignment == TRAILING)) {
horizontalAlignment = alignment;
} else {
throw new IllegalArgumentException("horizontalAlignment");
}
firePropertyChange("horizontalAlignment", oldValue, horizontalAlignment);
invalidate();
repaint();
|
public void | setScrollOffset(int scrollOffset)Sets the scroll offset, in pixels.
visibility.setValue(scrollOffset);
|
private void | writeObject(java.io.ObjectOutputStream s)See readObject and writeObject in
JComponent for more
information about serialization in Swing.
s.defaultWriteObject();
if (getUIClassID().equals(uiClassID)) {
byte count = JComponent.getWriteObjCounter(this);
JComponent.setWriteObjCounter(this, --count);
if (count == 0 && ui != null) {
ui.installUI(this);
}
}
|