如果JTextfield为空,我怎样才能在JTextfield内部放置水印。我一直在搜索youtube和Oracle的Java教程以及其他网站。
我已经找到了使用C#/ asp.net在线完成的方法,但显然这不是我想要做的。
我要做的就是获取用户名和密码,在各自的JTextField,JPasswordField中显示“username”和“password”,而不是实际的文本。我知道我需要一个事件监听器来查看它们是否为空。我不知道如何显示这些消息,就像上面的Stack Overflow一样,只要有键盘输入,它就会显示灰色的字母和消息中的“搜索...”。如果字符串再次为空,则重新出现。
请提前感谢您。
public class HelloPrompt extends JFrame {
public static void main(String[] args){
new HelloPrompt();
}
public HelloPrompt(){
super("Login Page");
JFrame frame = new JFrame("Login");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JButton b = new JButton("Submit");
JLabel user = new JLabel("username: ");
JTextField userEnt = new JTextField("username", 20);
JLabel pass = new JLabel("password: ");
JTextField passEnt = new JPasswordField("password", 20);
p.add(user);
p.add(userEnt);
p.add(pass);
p.add(passEnt);
add(p);
setSize(299,299);
setVisible(true);
}
}
答案 0 :(得分:0)
我不确定你要做什么,但你可以使用
userEnt.setText("Enter username: ")
passEnt.setText("Enter password: ")
将其前景颜色更改为更轻的GRAY
当用户点击文本字段时,清除文本字段的文本并将其foregroud重置为黑色。
为Lost Focus实现一个监听器。如果文本字段失去焦点且文本字段的文本等于空,则将前景色重置为GRAY
并且
再次打电话给
userEnt.setText("Enter username: ")
passEnt.setText("Enter password: ")