java - 为什么 Java Swing 中存在 JPasswordField 类?
问题描述
我知道 JPasswordField 类的作用,以及如何/何时使用它。这不是问题,只是为了清楚起见。
我不明白为什么它的功能不能成为 JTextField 的一部分:如果他们让 getEchoChar/setEchoChar 方法在 JTextField 类中可见,会出现什么问题?在将 JTextField 和 JPasswordField 设计为单独的组件时,他们试图避免的具体情况是什么?
在文档中,他们说:
JTextField
...
不直接提供方法 setEchoChar 和 getEchoChar 以避免可插入外观的新实现无意中暴露密码字符。为了提供类似密码的服务,一个单独的类 JPasswordField 扩展了 JTextField 来为这个服务提供一个独立的可插入的外观和感觉。
和
JPasswordField
...
JPasswordField 旨在与用于 echoChar 集的 java.awt.TextField 源兼容。它是单独提供的,以便更容易安全地更改 JTextField 的 UI,而不会影响密码条目。
但我真的无法理解它们的意思(特别是在“避免可插入的外观无意中暴露密码字符”)。
解决方案
推荐阅读
- python - wagtailmenus 包无法正常工作或在模板中呈现任何内容
- cmake - CMake在find中调试和发布静态库的名称
- yaml - 执行`helm install`命令时`deployment.yaml`中的ValidationError
- c# - ASP.NET Core 3:InvalidOperationException:没有为 Microsoft.AspNetCore.Mvc.Routing.ControllerActionEndpointDataSource 类型注册的服务
- sql - SQL 中对象“_Recordset”的方法“打开”失败
- java - 自动装配 JdcTemplate 时,Spring Batch JdbcPagingItemReader 似乎会干扰
- spring-boot - Apache camel Jetty 组件访问日志
- javascript - 提交后如何防止重定向到php文件?
- android - 我如何在 android 模拟器上运行 intellij react 本机应用程序
- excel - 删除具有特定值的所有行