モジュール java.desktop
パッケージ javax.swing

クラスJTextField

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants
    直系の既知のサブクラス:
    DefaultTreeCellEditor.DefaultTextField, JFormattedTextField, JPasswordField

    @JavaBean(defaultProperty="UIClassID",
              description="A component which allows for the editing of a single line of text.")
    public class JTextField
    extends JTextComponent
    implements SwingConstants
    JTextFieldは、1行のテキストの編集を可能にする軽量コンポーネントです。 テキスト・フィールドの詳細と使用例については、『The Java Tutorial』の「How to Use Text Fields」を参照してください。

    JTextFieldは、この処理を適切に行うjava.awt.TextFieldクラスとのソース互換性を提供するために用意されています。 このコンポーネントは、java.awt.TextFieldクラスにはない機能を備えています。 追加機能については、スーパー・クラスを参照してください。

    JTextFieldには、発生するアクション・イベントのコマンド文字列として使用する文字列を確定するメソッドがあります。 java.awt.TextFieldでは、フィールドのテキストがActionEventのコマンド文字列として使用されました。 JTextFieldでは、setActionCommandメソッドで設定されたコマンド文字列がnullでない場合は、それが使用されます。それ以外の場合は、フィールドのテキストがjava.awt.TextFieldとの互換機能として使用されます。

    プラグイン可能なLook & Feelの新しい実装がパスワード文字列を偶発的に表示してしまわないようにするために、setEchoCharメソッドとgetEchoCharメソッドは直接は提供されません。 パスワード様式のサービスを提供するためには、これとは別のJPasswordFieldクラスがJTextFieldを拡張して導入され、独自にプラグイン可能なLook & Feelにこのサービスを提供します。

    java.awt.TextFieldの変更を監視するには、TextEventTextListenerを追加します。 JTextComponentベースのコンポーネントでは、DocumentEvent経由でモデルからDocumentListenersに変更が送られます。 DocumentEventは、必要に応じて、変更位置と変更の種類を提供します。 この部分のコードは次のようになります。

    
         DocumentListener myListener = ??;
         JTextField myArea = ??;
         myArea.getDocument().addDocumentListener(myListener);
     

    JTextFieldの水平配置は、左揃え、中央揃え、右揃え、または末尾調整に設定できます。 フィールド・テキストの必要なサイズがそのフィールドに割り当てられたサイズよりも小さい場合は、右揃えと末尾調整は便利です。 これはsetHorizontalAlignmentメソッドとgetHorizontalAlignmentメソッドによって指定されます。 デフォルトでは、左揃えになります。

    テキスト・フィールドがVK_ENTERイベントを消費する方法は、このテキスト・フィールドにアクション・リスナーがあるかどうかによって異なります。 アクション・リスナーがある場合は、VK_ENTERによりリスナーにActionEventが返され、VK_ENTERイベントが消費されます。 これは、AWTテキスト・フィールドがVK_ENTERイベントを処理する方法と互換性があります。 テキスト・フィールドにアクション・リスナーがない場合、v 1.3では、VK_ENTERイベントは消費されません。 代わりに、上位クラスのコンポーネントのバインディングが処理されて、JFC/Swingのデフォルト・ボタン機能が使用できます。

    カスタマイズされたフィールドを簡単に作成するには、モデルを拡張して、提供されるデフォルト・モデルを変更します。 たとえば次のコードの一部は、大文字だけを保持するフィールドを作成します。 これは、テキストがクリップボードからペーストされたり、プログラムに基づいて変更されても機能します。

    
    
     public class UpperCaseField extends JTextField {
     
         public UpperCaseField(int cols) {
             super(cols);
         }
     
         protected Document createDefaultModel() {
             return new UpperCaseDocument();
         }
     
         static class UpperCaseDocument extends PlainDocument {
     
             public void insertString(int offs, String str, AttributeSet a)
                 throws BadLocationException {
     
                 if (str == null) {
                     return;
                 }
                 char[] upper = str.toCharArray();
                 for (int i = 0; i < upper.length; i++) {
                     upper[i] = Character.toUpperCase(upper[i]);
                 }
                 super.insertString(offs, new String(upper), a);
             }
         }
     }
    
     

    警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    setActionCommand(java.lang.String), JPasswordField, addActionListener(java.awt.event.ActionListener), 「直列化されたフォーム」
    • フィールドの詳細

      • notifyAction

        public static final String notifyAction
        フィールドの内容が受け付けられたという通知を送るアクションの名前です。 通常、これは復帰動作に割り当てられます。
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • JTextField

        public JTextField()
        新しいTextFieldを構築します。 デフォルト・モデルが作成され、初期文字列はnullで、列数が0に設定されます。
      • JTextField

        public JTextField​(String text)
        指定されたテキストで初期化された新しいTextFieldを構築します。 デフォルト・モデルが作成され、列数は0です。
        パラメータ:
        text - 表示されるテキストまたはnull
      • JTextField

        public JTextField​(int columns)
        指定された列数で新規の空のTextFieldを構築します。 デフォルト・モデルが作成され、初期文字列はnullに設定されます。
        パラメータ:
        columns - 適切な幅の計算に使用する列数。列数を0に設定すると、適切な幅はコンポーネントの実装から自然に得られる値になる
      • JTextField

        public JTextField​(String text,
                          int columns)
        指定されたテキストおよび列で初期化される新規TextFieldを構築します。 デフォルト・モデルが作成されます。
        パラメータ:
        text - 表示されるテキストまたはnull
        columns - 適切な幅の計算に使用する列数。列数を0に設定すると、適切な幅はコンポーネントの実装から自然に得られる値になる
      • JTextField

        public JTextField​(Document doc,
                          String text,
                          int columns)
        指定されたテキスト・ストレージ・モデルと列数を使用する新規のJTextFieldを構築します。 これは、ほかのコンストラクタが入力するコンストラクタです。 ドキュメントがnullの場合はデフォルト・モデルが作成されます。
        パラメータ:
        doc - 使用するテキスト・ストレージ。nullの場合は、createDefaultModelメソッドを呼び出すことによってデフォルトの値が提供される
        text - 表示する初期文字列またはnull
        columns - 適切な幅の計算に使用する列数。0以上。columnsを0に設定すると、適切な幅はコンポーネントの実装から自然に得られる値になる
        例外:
        IllegalArgumentException - columnsが0未満の場合
    • メソッドの詳細

      • setDocument

        @BeanProperty(expert=true,
                      description="the text document model")
        public void setDocument​(Document doc)
        エディタをテキスト・ドキュメントに関連付けます。 現在登録済のファクトリを使用すると、ドキュメントのビューを構築できます。このドキュメントは、再検証後にエディタによって表示されます。 PropertyChangeイベント("document")は、各リスナーに通知されます。
        オーバーライド:
        setDocument 、クラス:  JTextComponent
        パラメータ:
        doc - 表示および編集するドキュメント
        関連項目:
        JTextComponent.getDocument()
      • isValidateRoot

        public boolean isValidateRoot()
        テキスト・フィールド自身の中から呼び出されるrevalidateは、テキスト・フィールドの妥当性を検証することによって処理されます。ただし、テキスト・フィールドがJViewport内に含まれていない場合はfalseを返します。
        オーバーライド:
        isValidateRoot 、クラス:  JComponent
        戻り値:
        このテキスト・フィールドの親がJViewPortの場合はfalse、そうでない場合はtrue
        関連項目:
        JComponent.revalidate(), JComponent.isValidateRoot(), Container.isValidateRoot()
      • getHorizontalAlignment

        public int getHorizontalAlignment()
        テキストの水平配置を返します。 有効なキーは次のとおりです。
        • JTextField.LEFT
        • JTextField.CENTER
        • JTextField.RIGHT
        • JTextField.LEADING
        • JTextField.TRAILING
        戻り値:
        水平配置
      • setHorizontalAlignment

        @BeanProperty(preferred=true,
                      enumerationValues={"JTextField.LEFT","JTextField.CENTER","JTextField.RIGHT","JTextField.LEADING","JTextField.TRAILING"},
                      description="Set the field alignment to LEFT, CENTER, RIGHT, LEADING (the default) or TRAILING")
        public void setHorizontalAlignment​(int alignment)
        テキストの水平配置を設定します。 有効なキーは次のとおりです。
        • JTextField.LEFT
        • JTextField.CENTER
        • JTextField.RIGHT
        • JTextField.LEADING
        • JTextField.TRAILING
        配置が設定されるとinvalidaterepaintが呼び出され、PropertyChangeイベント(horizontalAlignment)がトリガーされます。
        パラメータ:
        alignment - 配置方法
        例外:
        IllegalArgumentException - alignmentが有効なキーでない場合
      • createDefaultModel

        protected Document createDefaultModel()
        モデルが明示的に指定されない場合は、構築時に使うモデルのデフォルト実装を作成します。 PlainDocumentのインスタンスが返されます。
        戻り値:
        デフォルト・モデルの実装
      • getColumns

        public int getColumns()
        このTextFieldの列数を返します。
        戻り値:
        列数>= 0
      • setColumns

        @BeanProperty(bound=false,
                      description="the number of columns preferred for display")
        public void setColumns​(int columns)
        このTextFieldの列数を設定し、配置を無効にします。
        パラメータ:
        columns - 列数>= 0
        例外:
        IllegalArgumentException - columnsが0より小さい場合
      • getColumnWidth

        protected int getColumnWidth()
        列幅を取得します。 フォントによっては、列は弱い意味しか持ちません。 このメソッドを使うと、1列の幅を定義できます。 デフォルトでは使用フォントの文字mの幅が定義されます。 このメソッドは、異なる幅になるように再定義できます。
        戻り値:
        列幅>= 1
      • setFont

        public void setFont​(Font f)
        現在のフォントを設定します。 キャッシュされた行の高さと列の幅を削除するので、新しいフォントの設定が反映されます。revalidateは、フォントの設定後に呼び出されます。
        オーバーライド:
        setFont 、クラス:  JComponent
        パラメータ:
        f - 新規フォント
        関連項目:
        Component.getFont()
      • addActionListener

        public void addActionListener​(ActionListener l)
        アクション・イベントをこのテキスト・フィールドから受け取るために、指定されたアクション・リスナーを追加します。
        パラメータ:
        l - 追加されるアクション・リスナー
      • removeActionListener

        public void removeActionListener​(ActionListener l)
        以後このテキスト・フィールドからアクション・イベントを受け取らないように、指定されたアクション・リスナーを削除します。
        パラメータ:
        l - 削除されるアクション・リスナー
      • getActionListeners

        @BeanProperty(bound=false)
        public ActionListener[] getActionListeners()
        addActionListener()を使用してこのJTextFieldに追加されたすべてのActionListenerの配列を返します。
        戻り値:
        追加されたすべてのActionListener。リスナーが追加されていない場合は空の配列
        導入されたバージョン:
        1.4
      • fireActionPerformed

        protected void fireActionPerformed()
        このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスが作成されます。 リスナー・リストは降順方式で処理されます。
        関連項目:
        EventListenerList
      • setActionCommand

        public void setActionCommand​(String command)
        アクション・イベントに使うコマンド文字列を設定します。
        パラメータ:
        command - コマンド文字列
      • setAction

        @BeanProperty(visualUpdate=true,
                      description="the Action instance connected with this ActionEvent source")
        public void setAction​(Action a)
        このActionEventソースのActionを設定します。 新しいActionは設定済みのActionと置き換わりますが、ActionListenersで独立して追加されたaddActionListenerには影響しません。 ActionがすでにActionEventソースにすでに登録されているActionListenerである場合は、再登録されません。

        Actionを設定すると、「ActionをサポートするSwingコンポーネント」で説明されているすべてのプロパティがすぐに変更されます。 続いて、Actionのプロパティの変更に合わせて、テキスト・フィールドのプロパティが自動的に更新されます。

        このメソッドは、Actionのプロパティ値を設定し、追跡するために、ほかの3つのメソッドを使用します。 このメソッドは、テキスト・フィールドのプロパティをただちに変更するために、configurePropertiesFromActionメソッドを使用します。 Actionのプロパティ値の変更を追跡するために、このメソッドはcreateActionPropertyChangeListenerから返されるPropertyChangeListenerを登録します。 デフォルトのPropertyChangeListenerは、Actionのプロパティに変更があると、actionPropertyChangedメソッドを呼び出します。

        パラメータ:
        a - JTextFieldAction、またはnull
        導入されたバージョン:
        1.3
        関連項目:
        Action, getAction(), configurePropertiesFromAction(javax.swing.Action), createActionPropertyChangeListener(javax.swing.Action), actionPropertyChanged(javax.swing.Action, java.lang.String)
      • getAction

        public Action getAction()
        このActionEventソースに現在設定されているActionを返します。Actionが設定されていない場合は、nullを返します。
        戻り値:
        このActionEventソースのAction、またはnull
        導入されたバージョン:
        1.3
        関連項目:
        Action, setAction(javax.swing.Action)
      • configurePropertiesFromAction

        protected void configurePropertiesFromAction​(Action a)
        指定されたActionのプロパティに一致するように、このテキスト・フィールドにプロパティを設定します。 これによって設定されるプロパティの詳細は、「ActionをサポートするSwingコンポーネント」を参照してください。
        パラメータ:
        a - プロパティを取得するAction、またはnull
        導入されたバージョン:
        1.3
        関連項目:
        Action, setAction(javax.swing.Action)
      • actionPropertyChanged

        protected void actionPropertyChanged​(Action action,
                                             String propertyName)
        関連アクションのプロパティの変更に応じてテキスト・フィールドの状態を更新します。 このメソッドは、createActionPropertyChangeListenerから返されるPropertyChangeListenerから呼び出されます。 サブクラスは、通常、これを呼び出す必要はありません。 追加のActionプロパティをサポートするサブクラスは、これとconfigurePropertiesFromActionをオーバーライドする必要があります。

        このメソッドによって設定されるプロパティのリストは、「ActionをサポートするSwingコンポーネント」の表を参照してください。

        パラメータ:
        action - このテキスト・フィールドに関連付けられたAction
        propertyName - 変更されたプロパティの名前
        導入されたバージョン:
        1.6
        関連項目:
        Action, configurePropertiesFromAction(javax.swing.Action)
      • createActionPropertyChangeListener

        protected PropertyChangeListener createActionPropertyChangeListener​(Action a)
        指定されたActionからの変更を待機し、適切なプロパティを更新する役割を担うPropertyChangeListenerを作成して、返します。

        警告: これをサブクラス化する場合、匿名の内部クラスは作成しないでください。 作成すると、テキスト・フィールドの寿命がActionの寿命に拘束されます。

        パラメータ:
        a - テキスト・フィールドのアクション
        戻り値:
        PropertyChangeListenerは、指定されたActionからの変更をリッスンし、適切なプロパティを更新することを担当
        導入されたバージョン:
        1.3
        関連項目:
        Action, setAction(javax.swing.Action)
      • getActions

        @BeanProperty(bound=false)
        public Action[] getActions()
        エディタのコマンド・リストを取得します。 これは、エディタ自身がサポートするコマンド・コレクションで拡張された、プラグイン済みUIによってサポートされるコマンドのリストです。 これらは、キーマップ内と同じように、イベントへの割当てに役立ちます。
        オーバーライド:
        getActions 、クラス:  JTextComponent
        戻り値:
        コマンド・リスト
      • postActionEvent

        public void postActionEvent()
        このテキスト・フィールドで発生するアクション・イベントを、登録されているすべてのActionListenerオブジェクトにディスパッチすることによって処理します。 これは一般的に、テキスト・フィールドに登録されたコントローラによって呼び出されます。
      • getHorizontalVisibility

        @BeanProperty(bound=false)
        public BoundedRangeModel getHorizontalVisibility()
        テキスト・フィールドの可視性を返します。 これを調整すると、フィールドのサイズが割り当てられた可視領域よりも大きい場合にその領域の位置を変更できます。

        フィールドのLook & Feelの実装は、BoundedRangeModelの最小値、最大値、長さの各プロパティの値を管理します。

        戻り値:
        可視性
        関連項目:
        BoundedRangeModel
      • getScrollOffset

        public int getScrollOffset()
        ピクセル単位のスクロール・オフセットを取得します。
        戻り値:
        オフセット>= 0
      • setScrollOffset

        public void setScrollOffset​(int scrollOffset)
        ピクセル単位のスクロール・オフセットを設定します。
        パラメータ:
        scrollOffset - オフセット>= 0
      • scrollRectToVisible

        public void scrollRectToVisible​(Rectangle r)
        フィールドを左または右にスクロールします。
        オーバーライド:
        scrollRectToVisible 、クラス:  JComponent
        パラメータ:
        r - スクロール対象の範囲
        関連項目:
        JViewport
      • paramString

        protected String paramString()
        このJTextFieldの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。 返される文字列は空の場合がありますが、nullにはなりません。
        オーバーライド:
        paramString 、クラス:  JTextComponent
        戻り値:
        このJTextFieldの文字列表現
      • getAccessibleContext

        @BeanProperty(bound=false)
        public AccessibleContext getAccessibleContext()
        このJTextFieldに関連付けられているAccessibleContextを取得します。 JTextFieldsの場合、AccessibleContextAccessibleJTextFieldの形式を取ります。 必要に応じて、新しいAccessibleJTextFieldインスタンスが作成されます。
        定義:
        getAccessibleContext、インタフェース: Accessible
        オーバーライド:
        getAccessibleContext 、クラス:  JTextComponent
        戻り値:
        このJTextFieldAccessibleContextとして機能するAccessibleJTextField