Module java.desktop
Package javax.swing

Class JPasswordField

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants

@JavaBean(description="Allows the editing of a line of text but doesn\'t show the characters.") public class JPasswordField extends JTextField
JPasswordField 是一个轻量级组件,允许编辑单行文本,其中视图指示已输入内容,但不显示原始字符。您可以在如何使用文本字段中找到更多信息和示例,这是《Java教程》中的一个部分。

JPasswordField 旨在与使用设置了echoCharjava.awt.TextField源代码兼容。它是单独提供的,以便更轻松地安全更改JTextField的UI,而不影响密码输入。

注意: 默认情况下,JPasswordField 禁用输入方法;否则,输入字符可能在使用输入方法组合时可见。如果应用程序需要输入方法支持,请使用继承的方法enableInputMethods(true)

警告: JPasswordField 不会显示已输入的原始字符,而是显示替代文本或图形。但是,这并不会阻止密码出现在系统内存中。对于处理诸如密码文本之类的机密信息,请参阅安全编码指南中的相关部分。

警告: Swing 不是线程安全的。有关更多信息,请参见Swing的线程策略

警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间进行RMI。从1.4版本开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参见XMLEncoder

自版本:
1.2
  • Constructor Details

    • JPasswordField

      public JPasswordField()
      构造一个新的JPasswordField,具有默认文档、null起始文本字符串和0列宽度。
    • JPasswordField

      public JPasswordField(String text)
      构造一个初始化为指定文本的新JPasswordField。文档模型设置为默认值,列数设置为0。
      参数:
      text - 要显示的文本,如果没有则为null
    • JPasswordField

      public JPasswordField(int columns)
      构造一个具有指定列数的新空JPasswordField。创建默认模型,并将初始字符串设置为null
      参数:
      columns - 列数 >= 0
    • JPasswordField

      public JPasswordField(String text, int columns)
      构造一个初始化为指定文本和列数的新JPasswordField。文档模型设置为默认值。
      参数:
      text - 要显示的文本,如果没有则为null
      columns - 列数 >= 0
    • JPasswordField

      public JPasswordField(Document doc, String txt, int columns)
      构造一个使用给定文本存储模型和给定列数的新JPasswordField。这是其他构造函数的构造函数。回显字符设置为'*',但可以通过当前外观和感觉更改。如果文档模型为null,则将创建一个默认文档模型。
      参数:
      doc - 要使用的文本存储
      txt - 要显示的文本,如果没有则为null
      columns - 用于计算首选宽度的列数 >= 0;如果列数设置为零,则首选宽度将是组件实现自然产生的宽度
  • Method Details

    • getUIClassID

      @BeanProperty(bound=false) public String getUIClassID()
      返回渲染此组件的L&F类的名称。
      覆盖:
      getUIClassID 在类 JTextField
      返回:
      字符串"PasswordFieldUI"
      参见:
    • updateUI

      public void updateUI()
      重新加载可插拔UI。用于获取新接口的键是getUIClassID()。UI的类型是TextUI。在设置UI后调用invalidate
      覆盖:
      updateUI 在类 JTextComponent
      自版本:
      1.6
      参见:
    • getEchoChar

      public char getEchoChar()
      返回用于回显的字符。默认为'*'。默认值可能会因当前运行的外观和感觉而有所不同。例如,Metal/Ocean的默认值是一个圆点字符。
      返回:
      回显字符,如果未设置则为0
      参见:
    • setEchoChar

      @BeanProperty(bound=false, visualUpdate=true, description="character to display in place of the real characters") public void setEchoChar(char c)
      设置此JPasswordField的回显字符。请注意,这在很大程度上是一个建议,因为安装的视图可以使用任何图形技术来表示字段。设置值为0表示您希望看到输入的文本,类似于标准JTextField的行为。
      参数:
      c - 要显示的回显字符
      参见:
    • echoCharIsSet

      public boolean echoCharIsSet()
      如果此JPasswordField设置了用于回显的字符集,则返回true。如果回显字符不为0,则认为已设置字符。
      返回:
      如果已设置回显字符,则返回true
      参见:
    • cut

      public void cut()
      在当前外观和感觉上调用provideErrorFeedback,通常会触发错误蜂鸣声。将当前选择的范围从关联文本模型传输到系统剪贴板的正常行为,并从模型中删除内容,对于密码字段来说是不可接受的。
      覆盖:
      cut 在类 JTextComponent
      参见:
    • copy

      public void copy()
      在当前外观和感觉上调用provideErrorFeedback,通常会触发错误蜂鸣声。将当前选择的范围从关联文本模型传输到系统剪贴板,并保留模型中的内容的正常行为,对于密码字段来说是不可接受的。
      覆盖:
      copy 在类 JTextComponent
      参见:
    • getText

      @Deprecated public String getText()
      Deprecated.
      As of Java 2 platform v1.2, replaced by getPassword.
      返回此TextComponent中包含的文本。如果底层文档为null,将引发NullPointerException

      出于安全原因,此方法已被弃用。请改用* getPassword方法。

      覆盖:
      getText 在类 JTextComponent
      返回:
      文本
      参见:
    • getText

      @Deprecated public String getText(int offs, int len) throws BadLocationException
      Deprecated.
      As of Java 2 platform v1.2, replaced by getPassword.
      获取组件表示的文本的一部分。如果长度为0,则返回空字符串。

      出于安全原因,此方法已被弃用。请改用getPassword方法。

      覆盖:
      getText 在类 JTextComponent
      参数:
      offs - 偏移量 >= 0
      len - 长度 >= 0
      返回:
      文本
      抛出:
      BadLocationException - 如果偏移量或长度无效
    • setText

      @BeanProperty(bound=false, description="the text of this component") public void setText(String t)
      从类中复制的描述: JTextComponent
      将此TextComponent的文本设置为指定的文本。如果文本为null或为空,则仅删除旧文本。插入文本后,结果光标位置由光标类的实现确定。

      请注意,文本不是绑定属性,因此在更改时不会触发PropertyChangeEvent。要监听文本的更改,请使用DocumentListener

      覆盖:
      setText 在类 JTextComponent
      参数:
      t - 要设置的新文本
      参见:
    • getPassword

      @BeanProperty(bound=false) public char[] getPassword()
      返回此TextComponent中包含的文本。如果底层文档为null,将引发NullPointerException。为了更强的安全性,建议在使用后清除返回的字符数组,将每个字符设置为零。
      返回:
      文本
    • paramString

      protected String paramString()
      返回此JPasswordField的字符串表示形式。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
      覆盖:
      paramString 在类 JTextField
      返回:
      JPasswordField的字符串表示形式
    • getAccessibleContext

      @BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
      返回与此JPasswordField关联的AccessibleContext。对于密码字段,AccessibleContext采用AccessibleJPasswordField的形式。如有必要,将创建一个新的AccessibleJPasswordField实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 JTextField
      返回:
      作为此JPasswordFieldAccessibleContextAccessibleJPasswordField