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 |
---|
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)Factory method which sets the ActionEvent
source's properties according to values from the
Action instance. The properties
which are set may differ for subclasses.
By default, the properties which get set are
Enabled and ToolTipText .
setEnabled((a!=null?a.isEnabled():true));
setToolTipText((a!=null?(String)a.getValue(Action.SHORT_DESCRIPTION):null));
|
protected java.beans.PropertyChangeListener | createActionPropertyChangeListener(javax.swing.Action a)Factory method which creates the PropertyChangeListener
used to update the ActionEvent source as
properties change on its Action instance.
Subclasses may override this in order to provide their own
PropertyChangeListener if the set of
properties which should be kept up to date differs from the
default properties (Text, Enabled, ToolTipText).
Note that PropertyChangeListeners should avoid holding
strong references to the ActionEvent source,
as this may hinder garbage collection of the
ActionEvent source and all components
in its containment hierarchy.
return new AbstractActionPropertyChangeListener(this, a) {
public void propertyChange(PropertyChangeEvent e) {
String propertyName = e.getPropertyName();
JTextField textField = (JTextField)getTarget();
if (textField == null) { //WeakRef GC'ed in 1.2
Action action = (Action)e.getSource();
action.removePropertyChangeListener(this);
} else {
if (e.getPropertyName().equals(Action.SHORT_DESCRIPTION)) {
String text = (String) e.getNewValue();
textField.setToolTipText(text);
} else if (propertyName.equals("enabled")) {
Boolean enabledState = (Boolean) e.getNewValue();
textField.setEnabled(enabledState.booleanValue());
textField.repaint();
}
}
}
};
|
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.
A side-effect of setting the Action is that the
ActionEvent source's properties
are immediately set from the values in the Action
(performed by the method configurePropertiesFromAction )
and subsequently updated as the Action 's
properties change (via a PropertyChangeListener
created by the method createActionPropertyChangeListener .
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);
revalidate();
repaint();
}
|
public void | setActionCommand(java.lang.String command)Sets the command string used for action events.
this.command = command;
|
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);
}
}
|