我正在用 Java 开发一个系统(使用 NetBeans),为了让它更“专业”,我添加了一些很酷的功能,比如占位符(是的,我知道,它来自 HTML)。
对于我拥有的所有JTextField,我使用以下代码生成它们的占位符(本示例中 JTextField 的名称是“tfUser”):
private void tfUserFocusGained(java.awt.event.FocusEvent evt) {
if (tfUser.getText().equals("Your User Name...")) {
tfUser.setText("");
tfUser.setForeground(Color.BLACK);
}
}
private void tfUserFocusLost(java.awt.event.FocusEvent evt) {
if (tfUser.getText().equals("")) {
tfUser.setText("Your User Name...");
tfUser.setForeground(Color.GRAY);
}
}
这是一个“焦点匹配”:文本字段最初具有文本“您的用户名...”,前景为“灰色”。每次此文本字段获得焦点时,它都会验证其文本:如果 text.equals("Your User Name..."),则其文本设置为“”(空字符串)并且前景设置为黑色(默认)。另一方面,如果 text.equals("Anything else..."),则意味着用户可能已经插入了用户名,因此,不要对这段代码做任何事情。
每次文本字段失去焦点时,它都会验证其文本:如果 text.equals("") (又是一个空字符串),则其文本设置回“您的用户名...”并且前景设置为灰色的。再一次,如果 text.equals("Anything else..."),这意味着用户可能已经插入了用户名,所以不要对这段代码做任何事情。
此代码与 JTextFields 完美配合,但是,当我对JPasswordFields执行相同操作时,我得到以下结果:
****************
(应该是“您的密码...”)
谁能帮我在这个 JPasswordField 中添加一个占位符?提前致谢。