public class JFormattedTextField extends JTextField
JFormattedTextField
はJTextField
を拡張して、任意の値をフォーマットしたり、ユーザーがテキストを編集したあとに特定のオブジェクトを取得したりするためのサポートを追加します。JFormattedTextField
の日付編集用の設定例を次に挙げます。
JFormattedTextField ftf = new JFormattedTextField(); ftf.setValue(new Date());
JFormattedTextField
が一度生成されると、PropertyChangeListener
を追加し、プロパティ名value
を使用してPropertyChangeEvent
を待機することで、変更の編集を待機できます。
JFormattedTextField
により、フォーカスが失われた場合に実行するアクションの設定が可能になります。次の設定が用意されています。
値 | 説明 |
---|---|
JFormattedTextField.REVERT | getValue の表示に合うように、表示を元に戻す。現在の編集は失われる可能性がある。
|
JFormattedTextField.COMMIT | 現在の値を確定。現在の値がAbstractFormatter による正当な値ではなく、ParseException がスローされる場合、値は変更されず、編集された値がそのまま残る。
|
JFormattedTextField.COMMIT_OR_REVERT | COMMIT とほぼ同じ。値が正当なものでない場合はREVERT と同様。
|
JFormattedTextField.PERSIST | 何も処理しない。新しいAbstractFormatter の取得、値の更新、どちらも実行しない。
|
JFormattedTextField.COMMIT_OR_REVERT
です。詳細については、setFocusLostBehavior(int)
を参照してください。
JFormattedTextField
により、現在編集中の値が不正な場合でもフォーカスは移動が可能になります。JFormattedTextField
の編集状態が不正な場合にフォーカスをロックするには、InputVerifier
を接続します。このようなInputVerifier
を実装したコードの一部を例として挙げます。
public class FormattedTextFieldVerifier extends InputVerifier { public boolean verify(JComponent input) { if (input instanceof JFormattedTextField) { JFormattedTextField ftf = (JFormattedTextField)input; AbstractFormatter formatter = ftf.getFormatter(); if (formatter != null) { String text = ftf.getText(); try { formatter.stringToValue(text); return true; } catch (ParseException pe) { return false; } } } return true; } public boolean shouldYieldFocus(JComponent input) { return verify(input); } }
commitEdit
を呼び出すことでも値を確定できます。
JFormattedTextField
はそれ自体ではフォーマットを行わず、JFormattedTextField.AbstractFormatterFactory
のインスタンスから取得されるJFormattedTextField.AbstractFormatter
のインスタンスでフォーマットを行います。JFormattedTextField.AbstractFormatter
のインスタンスは、アクティブになったときにinstall
メソッドから通知を受け、JFormattedTextField.AbstractFormatter
はその時点で必要なオブジェクト(通常はDocumentFilter
)をインストールできます。同様にJFormattedTextField
でAbstractFormatter
が不要になった場合は、uninstall
が呼び出されます。
JFormattedTextField
は、通常、フォーカスを取得または喪失したときに、AbstractFormat
に対するAbstractFormatterFactory
を照会します。ただし、これはフォーカス喪失ポリシーに基づいて変更できます。フォーカス喪失ポリシーがJFormattedTextField.PERSIST
であり、JFormattedTextField
が編集されている場合、AbstractFormatterFactory
は値が確定されるまで照会されません。同様に、フォーカス喪失ポリシーがJFormattedTextField.COMMIT
であり、例外がstringToValue
からスローされる場合、AbstractFormatterFactory
はフォーカスが喪失または取得されるまで照会されません。
JFormattedTextField.AbstractFormatter
は、確定値をJFormattedTextField
に設定するタイミングも決定します。JFormattedTextField.AbstractFormatter
の中には、編集のたびに新しく値を生成するものもあり、まったく値を確定しないものもあります。commitEdit
を呼び出すことで、現在の値を現在のJFormattedTextField.AbstractFormatter
から強制的に取得できるようになります。commitEdit
はJFormattedTextField
で[Enter]を押すたびに呼び出されます。
AbstractFormatterFactory
が明示的に設定されていない場合で、値がnull以外のときには、setValue
が呼び出されたあとに、値の型Class
に基づいてこれが設定されます。たとえば、次のコードでは、適切なAbstractFormatterFactory
とAbstractFormatter
が、数値のフォーマット処理のために生成されます。
JFormattedTextField tf = new JFormattedTextField(); tf.setValue(new Number(100));
警告: AbstractFormatter
は、通常、Document
にDocumentFilter
をインストールし、JFormattedTextField
にNavigationFilter
をインストールするため、この2つを独自にインストールしないでください。独自にインストールすると、動作が奇妙になり、AbstractFormatter
の編集ポリシーが強化されなくなります。
警告: Swingはスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。1.4以降、すべてのJavaBeans(tm)用の長期間の格納サポートがjava.beans
パッケージに追加されています。XMLEncoder
を参照してください。
修飾子と型 | クラスと説明 |
---|---|
static class |
JFormattedTextField.AbstractFormatter
AbstractFormatter のインスタンスは、ObjectからStringおよびStringからObjectへの変換を処理するためにJFormattedTextField で使用されます。 |
static class |
JFormattedTextField.AbstractFormatterFactory
AbstractFormatterFactory のインスタンスはJFormattedTextField で使用され、値のフォーマットに使用されるAbstractFormatter のインスタンスを取得します。 |
JTextField.AccessibleJTextField
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
修飾子と型 | フィールドと説明 |
---|---|
static int |
COMMIT
フォーカス喪失時に
commitEdit を呼び出すことを指定する定数です。 |
static int |
COMMIT_OR_REVERT
フォーカス喪失時に
commitEdit を呼び出すことを指定する定数です。 |
static int |
PERSIST
フォーカス喪失時に編集されている値を残しておくことを指定する定数です。
|
static int |
REVERT
フォーカス喪失時に、編集中の値を
JFormattedTextField の現在の値セットに戻すことを指定する定数です。 |
notifyAction
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
コンストラクタと説明 |
---|
JFormattedTextField()
AbstractFormatterFactory を使用しないでJFormattedTextField を生成します。 |
JFormattedTextField(Format format)
JFormattedTextField を作成します。 |
JFormattedTextField(JFormattedTextField.AbstractFormatter formatter)
指定された
AbstractFormatter でJFormattedTextField を作成します。 |
JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory)
指定された
AbstractFormatterFactory でJFormattedTextField を作成します。 |
JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory, Object currentValue)
指定された
AbstractFormatterFactory と初期値を使用してJFormattedTextField を生成します。 |
JFormattedTextField(Object value)
指定された値を使用してJFormattedTextFieldを生成します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
commitEdit()
現在の値を
AbstractFormatter から強制的に取得し、現在の値として設定します。 |
Action[] |
getActions()
エディタのコマンド・リストを取得します。
|
int |
getFocusLostBehavior()
フォーカス喪失時の動作を返します。
|
JFormattedTextField.AbstractFormatter |
getFormatter()
現在の値のフォーマットと構文解析に使用される
AbstractFormatter を返します。 |
JFormattedTextField.AbstractFormatterFactory |
getFormatterFactory()
現在の
AbstractFormatterFactory を返します。 |
String |
getUIClassID()
UIのクラスIDを取得します。
|
Object |
getValue()
最新の有効な値を返します。
|
protected void |
invalidEdit()
ユーザーが無効な値を入力した場合に呼び出されます。
|
boolean |
isEditValid()
現在編集中の値が有効な場合にtrueを返します。
|
protected void |
processFocusEvent(FocusEvent e)
FocusEvent.FOCUS_GAINED やFocusEvent.FOCUS_LOST などのフォーカス・イベントを処理します。 |
protected void |
processInputMethodEvent(InputMethodEvent e)
InputMethodEvent.INPUT_METHOD_TEXT_CHANGED やInputMethodEvent.CARET_POSITION_CHANGED などのインプット・メソッド・イベントを処理します。 |
void |
setDocument(Document doc)
エディタをテキスト・ドキュメントに関連付けます。
|
void |
setFocusLostBehavior(int behavior)
フォーカス喪失時の動作を設定します。
|
protected void |
setFormatter(JFormattedTextField.AbstractFormatter format)
現在の
AbstractFormatter を設定します。 |
void |
setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf)
AbstractFormatterFactory を設定します。 |
void |
setValue(Object value)
現在の
AbstractFormatterFactory から取得したAbstractFormatter でフォーマットされる値を設定します。 |
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffset
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, write
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final int COMMIT
commitEdit
を呼び出すことを指定する定数です。新しい値の確定時にParseException
がスローされると、無効な値がそのまま残ることになります。public static final int COMMIT_OR_REVERT
commitEdit
を呼び出すことを指定する定数です。新しい値の確定時にParseException
がスローされると、元の値に戻されます。public static final int REVERT
JFormattedTextField
の現在の値セットに戻すことを指定する定数です。public static final int PERSIST
public JFormattedTextField()
AbstractFormatterFactory
を使用しないでJFormattedTextField
を生成します。特定の型の値を編集するようにJFormattedTextField
を設定する場合は、setMask
またはsetFormatterFactory
を使用してください。public JFormattedTextField(Object value)
value
の型に基づいたAbstractFormatterFactory
が生成されます。value
- JFormattedTextFieldの初期値public JFormattedTextField(Format format)
JFormattedTextField
を作成します。format
は適切なAbstractFormatterにラップされ、AbstractFormatter
はAbstractFormatterFactory
にラップされます。format
- AbstractFormatterの検索に使用されるフォーマットpublic JFormattedTextField(JFormattedTextField.AbstractFormatter formatter)
AbstractFormatter
でJFormattedTextField
を作成します。AbstractFormatter
はAbstractFormatterFactory
に配置されます。formatter
- フォーマットで使用されるAbstractFormatter。public JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory)
AbstractFormatterFactory
でJFormattedTextField
を作成します。factory
- フォーマットに使用されるAbstractFormatterFactory。public JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory, Object currentValue)
AbstractFormatterFactory
と初期値を使用してJFormattedTextField
を生成します。factory
- フォーマットに使用されるAbstractFormatterFactory
。currentValue
- 使用される初期値public void setFocusLostBehavior(int behavior)
JFormattedTextField.COMMIT_OR_REVERT
、JFormattedTextField.REVERT
、JFormattedTextField.COMMIT
またはJFormattedTextField.PERSIST
のいずれかです。AbstractFormatter
の中には、この値により影響を与えないように、変更発生時に変更をプッシュするものがあります。
渡されるオブジェクトの値が前述の値でない場合はIllegalArgumentException
がスローされます。
このプロパティのデフォルト値はJFormattedTextField.COMMIT_OR_REVERT
です。
behavior
- フォーカス喪失時の動作IllegalArgumentException
- 動作が指定された値で示されるものでない場合public int getFocusLostBehavior()
COMMIT_OR_REVERT
、COMMIT
、REVERT
またはPERSIST
のいずれかです。AbstractFormatter
の中には、この値により影響を与えないように、変更発生時に変更をプッシュするものがあります。public void setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf)
AbstractFormatterFactory
を設定します。AbstractFormatterFactory
は、表示値のフォーマット、および編集ポリシー強化に使用されるAbstractFormatter
のインスタンスを返すことができます。
このメソッドまたはコンストラクタでAbstractFormatterFactory
が明示的に設定されていない場合、AbstractFormatterFactory
、そして結果的にAbstractFormatter
は値のClass
に基づいて使用されます。Number
にはNumberFormatter
、Dates
にはDateFormatter
、それ以外にはDefaultFormatter
が使用されます。
これはJavaBeansバウンド・プロパティです。
tf
- AbstractFormatter
のインスタンス検索に使用されるAbstractFormatterFactory
public JFormattedTextField.AbstractFormatterFactory getFormatterFactory()
AbstractFormatterFactory
を返します。AbstractFormatter
の特定に使用されるAbstractFormatterFactory
setFormatterFactory(javax.swing.JFormattedTextField.AbstractFormatterFactory)
protected void setFormatter(JFormattedTextField.AbstractFormatter format)
AbstractFormatter
を設定します。
通常、これを呼び出す代わりに、AbstractFormatterFactory
またはその値を設定します。JFormattedTextField
は、これをJFormattedTextField
変更の状態として呼び出し、値のリセットを要求します。JFormattedTextField
はAbstractFormatterFactory
から取得したAbstractFormatter
を渡します。
これはJavaBeansバウンド・プロパティです。
format
- フォーマットで使用されるAbstractFormattersetFormatterFactory(javax.swing.JFormattedTextField.AbstractFormatterFactory)
public JFormattedTextField.AbstractFormatter getFormatter()
AbstractFormatter
を返します。public void setValue(Object value)
AbstractFormatterFactory
から取得したAbstractFormatter
でフォーマットされる値を設定します。AbstractFormatterFactory
が指定されていない場合は、value
の型に基づいてその生成を試みます。
このプロパティのデフォルト値はnullです。
これはJavaBeansバウンド・プロパティです。
value
- 表示される現在の値public Object getValue()
AbstractFormatter
の編集ポリシーに基づいて、現在の値が返されない場合があります。現在編集されている値はgetValue
のあとcommitEdit
を呼び出すことによって取得できます。public void commitEdit() throws ParseException
AbstractFormatter
から強制的に取得し、現在の値として設定します。AbstractFormatter
が現在インストールされていない場合は何も実行しません。ParseException
- AbstractFormatter
が現在の値をフォーマットできない場合public boolean isEditValid()
AbstractFormatter
で管理されます。この値をpublicに設定する機能はありません。protected void invalidEdit()
protected void processInputMethodEvent(InputMethodEvent e)
InputMethodEvent.INPUT_METHOD_TEXT_CHANGED
やInputMethodEvent.CARET_POSITION_CHANGED
などのインプット・メソッド・イベントを処理します。processInputMethodEvent
、クラス: JTextComponent
e
- InputMethodEvent
InputMethodEvent
protected void processFocusEvent(FocusEvent e)
FocusEvent.FOCUS_GAINED
やFocusEvent.FOCUS_LOST
などのフォーカス・イベントを処理します。processFocusEvent
、クラス: Component
e
- FocusEvent
FocusEvent
public Action[] getActions()
getActions
、クラス: JTextField
public String getUIClassID()
getUIClassID
、クラス: JTextField
JComponent.getUIClassID()
public void setDocument(Document doc)
setDocument
、クラス: JTextField
doc
- 表示および編集するドキュメントJTextComponent.getDocument()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.