有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何创建JTextfield文本水印(非实际文本)

JTextfield为空时,如何获得放置在其内部的水印

我所要做的就是让username和password字段在各自的JTextFieldJPasswordField中显示“username”和“password”,而不是实际文本。我知道我需要一个事件侦听器来查看它们是否为空。我不知道如何显示这些消息,就像上面的堆栈溢出一样,上面写着“搜索…”以灰显字母显示,并在键盘输入时消失。如果字符串再次为空,则应重新显示

请提前告诉我并谢谢你

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);
        
        
    }
}

共 (1) 个答案

  1. # 1 楼答案

    我不确定你想做什么,但你可以使用

    userEnt.setText("Enter username: ") passEnt.setText("Enter password: ")

    将其前景色更改为较浅的颜色,如GRAY 当用户单击文本字段时,清除文本字段的文本并将其foreground重置为黑色

    实现一个监听程序,以防失去焦点。如果文本字段失去焦点且文本字段的文本等于零,请将前景色重置为GRAY,然后 再说一遍

    userEnt.setText("Enter username: ") passEnt.setText("Enter password: ")