【发布时间】:2017-07-23 20:19:14
【问题描述】:
我正在用 Java 开发一个系统(使用 NetBeans),为了让它更“专业”,我添加了一些很酷的功能,例如 Placeholders(是的,我知道,它来自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 执行相同操作时,我得到以下结果: p>
****************
(应该是“您的密码...”)
谁能帮我在这个 JPasswordField 中添加一个占位符?提前致谢。
【问题讨论】:
-
但是 JPasswordField 不应该是什么?使用 * 隐藏文本的条目?我认为您必须使用 JLabel,如下所示:java-tutorial.org/jpasswordfield.html
-
你可能想看看Java - placeholder on textfield - 有一个API可以做你想做的事
标签: java jframe jpasswordfield