Module  java.desktop
软件包  java.awt

Class TextField

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessible


    public class TextField
    extends TextComponent
    TextField对象是允许编辑单行文本的文本组件。

    例如,以下图像描绘了具有不同宽度的四个文本字段的帧。 其中两个文本字段显示预定义文本"Hello"

    前面的文字描述了这个图像。

    以下是产生这四个文本字段的代码:


     TextField tf1, tf2, tf3, tf4;
     // a blank text field
     tf1 = new TextField();
     // blank field of 20 columns
     tf2 = new TextField("", 20);
     // predefined text displayed
     tf3 = new TextField("Hello!");
     // predefined text in 30 columns
     tf4 = new TextField("Hello", 30);
     

    每当用户在文本字段中键入一个键时,一个或多个键事件将发送到文本字段。 A KeyEvent可以是以下三种类型之一:keyPressed,keyReleased或keyTyped。 密钥事件的属性指示它们中的哪一种,以及关于事件的附加信息,例如什么修饰符应用于密钥事件和事件发生的时间。

    密钥事件传递给每个KeyListenerKeyAdapter对象,该对象使用组件的addKeyListener方法注册接收此类事件。 KeyAdapter对象实现KeyListener接口。)

    也可以点火ActionEvent 如果为文本字段启用了操作事件,则可能会按Return键触发。

    TextField类的processEvent方法检查动作事件,并将其传递给processActionEvent 后一种方法将事件重定向到已注册接收此文本字段生成的操作事件的任何ActionListener对象。

    从以下版本开始:
    1.0
    另请参见:
    KeyEventKeyAdapterKeyListenerActionEventComponent.addKeyListener(java.awt.event.KeyListener)processEvent(java.awt.AWTEvent)processActionEvent(java.awt.event.ActionEvent)addActionListener(java.awt.event.ActionListener)Serialized Form
    • 构造方法详细信息

      • TextField

        public TextField​(String text)
                  throws HeadlessException
        构造一个使用指定文本初始化的新文本字段。
        参数
        text - 要显示的文字。 如果textnull ,将显示空字符串"" 如果text包含EOL和/或LF字符,则每个都将被空格字符替换。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        GraphicsEnvironment.isHeadless()
      • TextField

        public TextField​(int columns)
                  throws HeadlessException
        构造具有指定列数的新的空文本字段。 一列是平台相关的近似平均字符宽度。
        参数
        columns - 列数。 如果columns小于0 ,则columns设置为0
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        GraphicsEnvironment.isHeadless()
      • TextField

        public TextField​(String text,
                         int columns)
                  throws HeadlessException
        构造一个新的文本字段,并使用指定的文本进行初始化,以便显示,并且足够宽以容纳指定的列数。 一列是平台相关的近似平均字符宽度。
        参数
        text - 要显示的文字。 如果textnull ,则将显示空字符串"" 如果text包含EOL和/或LF字符,则每个都将被空格字符替换。
        columns - 列数。 如果columns小于0 ,则columns设为0
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        GraphicsEnvironment.isHeadless()
    • 方法详细信息

      • getEchoChar

        public char getEchoChar​()
        获取要用于回显的字符。

        回声字符对于用户输入不应该回显到屏幕的文本字段很有用,如在输入密码的文本字段的情况下。 如果echoChar = 0 ,用户输入回显到屏幕不变。

        Java平台实现可能只支持有限的非空的echo字符集。 此函数返回最初通过setEchoChar()请求的回显字符。 TextField实现中实际使用的回音字符可能不同。

        结果
        此文本字段的回音字符。
        另请参见:
        echoCharIsSet()setEchoChar(char)
      • setEchoChar

        public void setEchoChar​(char c)
        设置此文本字段的回音字符。

        回声字符对于用户输入不应该回显到屏幕的文本字段很有用,如在输入密码的文本字段的情况下。 设置echoChar = 0允许用户输入再次回到屏幕。

        Java平台实现可能只支持有限的非空的echo字符集。 尝试设置不支持的回音字符将导致使用默认回音字符。 对getEchoChar()的后续调用将返回最初请求的回显字符。 这可能或可能不同于TextField实现中实际使用的回音字符。

        参数
        c - 此文本字段的回音字符。
        从以下版本开始:
        1.1
        另请参见:
        echoCharIsSet()getEchoChar()
      • setEchoCharacter

        @Deprecated
        public void setEchoCharacter​(char c)
        已过时。 从JDK 1.1版开始,由setEchoChar(char)取代。
        设置受保护输入显示时要回显的字符。
        参数
        c - 此文本字段的回音字符
      • setText

        public void setText​(String t)
        将此文本组件呈现的文本设置为指定的文本。
        重写:
        setTextTextComponent
        参数
        t - 新文本。 如果tnull ,将显示空字符串"" 如果t包含EOL和/或LF字符,则每个都将被空格字符替换。
        另请参见:
        TextComponent.getText()
      • echoCharIsSet

        public boolean echoCharIsSet​()
        指示此文本字段是否具有用于回显的字符集。

        回声字符对于用户输入不应该回显到屏幕的文本字段很有用,如在输入密码的文本字段的情况下。

        结果
        true如果此文本字段具有用于回显的字符集; 否则为false
        另请参见:
        setEchoChar(char)getEchoChar()
      • getColumns

        public int getColumns​()
        获取此文本字段中的列数。 一列是平台相关的近似平均字符宽度。
        结果
        列数。
        从以下版本开始:
        1.1
        另请参见:
        setColumns(int)
      • setColumns

        public void setColumns​(int columns)
        设置此文本字段中的列数。 一列是平台相关的近似平均字符宽度。
        参数
        columns - 列数。
        异常
        IllegalArgumentException - 如果为 columns提供的值小于 0
        从以下版本开始:
        1.1
        另请参见:
        getColumns()
      • getPreferredSize

        public Dimension getPreferredSize​(int columns)
        使用指定的列数获取此文本字段的首选大小。
        参数
        columns - 此文本字段中的列数。
        结果
        用于显示此文本字段的首选尺寸。
        从以下版本开始:
        1.1
      • preferredSize

        @Deprecated
        public Dimension preferredSize​(int columns)
        已过时。 从JDK 1.1版开始,由getPreferredSize(int)替代。
        返回具有指定列数的此文本字段的首选大小。
        参数
        columns - 列数
        结果
        文本字段的首选大小
      • preferredSize

        @Deprecated
        public Dimension preferredSize​()
        已过时。 从JDK 1.1版开始,由getPreferredSize()取代。
        描述从类别复制: Component
        返回组件的首选大小。
        重写:
        preferredSizeComponent
        结果
        该组件的首选尺寸
      • getMinimumSize

        public Dimension getMinimumSize​(int columns)
        获取具有指定列数的文本字段的最小尺寸。
        参数
        columns - 此文本字段中的列数。
        结果
        此文本字段的最小大小
        从以下版本开始:
        1.1
      • minimumSize

        @Deprecated
        public Dimension minimumSize​(int columns)
        已过时。 从JDK 1.1版开始,由getMinimumSize(int)替代。
        返回具有指定列数的文本字段的最小尺寸。
        参数
        columns - 列数
        结果
        此文本字段的最小大小
      • minimumSize

        @Deprecated
        public Dimension minimumSize​()
        已过时。 从JDK 1.1版开始,由getMinimumSize()替代。
        描述从类复制: Component
        返回此组件的最小大小。
        重写:
        minimumSizeComponent
        结果
        该组件的最小尺寸
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        返回当前注册为FooListener的所有对象的数组,此TextField FooListener使用addFooListener方法注册。

        您可以使用类文字指定listenerType参数,如FooListener.class 例如,您可以使用以下代码查询TextField t的动作侦听器:

          ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class)); 
        如果没有这样的侦听器存在,这个方法返回一个空数组。
        重写:
        getListenersTextComponent
        参数类型
        T - 听众的类型
        参数
        listenerType - 所请求的听众的类型; 此参数应指定从java.util.EventListener下降的接口
        结果
        在此文本字段上注册为 FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组
        异常
        ClassCastException - 如果 listenerType未指定实现 java.util.EventListener的类或接口
        从以下版本开始:
        1.3
        另请参见:
        getActionListeners()
      • processEvent

        protected void processEvent​(AWTEvent e)
        处理此文本字段上的事件。 如果事件是ActionEvent一个实例,它将调用processActionEvent方法。 否则,它将在超类上调用processEvent

        请注意,如果事件参数为null该行为是未指定的,可能会导致异常。

        重写:
        processEventTextComponent
        参数
        e - 事件
        从以下版本开始:
        1.1
        另请参见:
        ActionEventprocessActionEvent(java.awt.event.ActionEvent)
      • processActionEvent

        protected void processActionEvent​(ActionEvent e)
        通过将它们发送到任何已注册的ActionListener对象来处理在此文本字段上发生的操作事件。

        除非为此组件启用了操作事件,否则不会调用此方法。 当发生以下情况之一时,启用操作事件:

        • 通过addActionListener注册一个ActionListener对象。
        • 操作事件通过enableEvents启用。

        请注意,如果事件参数为null则行为未指定,并可能导致异常。

        参数
        e - 动作事件
        从以下版本开始:
        1.1
        另请参见:
        ActionListeneraddActionListener(java.awt.event.ActionListener)Component.enableEvents(long)
      • paramString

        protected String paramString​()
        返回表示TextField状态的字符串。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringTextComponent
        结果
        此文本字段的参数字符串
      • getAccessibleContext

        public AccessibleContext getAccessibleContext​()
        获取与此TextField关联的AccessibleContext。 对于文本字段,AccessibleContext采用AccessibleAWTTextField的形式。 如有必要,将创建一个新的AccessibleAWTTextField实例。
        Specified by:
        getAccessibleContext在接口 Accessible
        重写:
        getAccessibleContextTextComponent
        结果
        一个AccessibleAWTTextField,用作此TextField的AccessibleContext
        从以下版本开始:
        1.3