JPasswordField上的java设置占位符
我正在用Java(使用NetBeans)开发一个系统,为了让它更“专业”,我添加了一些很酷的功能,比如占位符(是的,我知道,它来自HTML)
对于我拥有的所有JTextFields,我使用了以下代码来生成它们的占位符(本例中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);
}
}
这是一场“焦点比赛”: 文本字段最初包含文本“您的用户名…”,前景为“灰色”。每次此文本字段获得焦点时,它都会验证其文本:如果文本为。等于(“您的用户名…”),其文本设置为“”(空字符串),前景设置为黑色(默认)。另一方面,如果文本。等于(“其他任何东西……”),这意味着用户可能已经插入了用户名,因此,不要使用此代码执行任何操作
每次文本字段失去焦点时,它都会验证其文本:如果文本丢失。等于(“”)(再次为空字符串),其文本设置回“您的用户名…”前景设置为灰色。再说一次,如果是文本。等于(“其他任何东西……”),这意味着用户可能已经插入了用户名,因此,不要使用此代码执行任何操作
这段代码与JTextFields配合得很好,但是当我与JPasswordFields配合使用时,我得到了以下结果:
****************
(应该是“你的密码…”)
有人能帮我在这个JPassword字段中添加一个占位符吗?提前谢谢
# 1 楼答案
我对我的登录代码所做的是添加一个“显示密码”的复选框,并在jframe中添加了以下语句:
密码复选框的代码:
密码字段焦点代码:
密码字段焦点的代码丢失:
我自己做了一半,并从视频中提取了一些片段,希望这能有所帮助:>