【问题标题】:Display/disappear default text in TextField when user enters data/erase the text当用户输入数据/擦除文本时,在 TextField 中显示/消失默认文本
【发布时间】:2013-08-08 20:33:07
【问题描述】:

我正在尝试制作注册表单,我正在尝试在文本字段中显示默认文本,简单的意思如下图所示。 我想要做的是,直到用户将数据输入到一个字段中,例如,有一个名为“名字”的字段。当用户选择“名字”字段时,文本消失并且用户可以输入他们的名字。 如果用户没有输入任何内容,文本应该会再次显示在文本字段中。

我尝试使用焦点侦听器,但我无法真正让它工作,因为使用我的方法,即使用户在字段中键入数据并转到下一个字段,前一个字段的文本也会被删除,并且显示默认文本。

这是我所做的:-

txtFirstName.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
        txtFirstName.setText("");
    }

    public void focusLost(FocusEvent e) {
        txtFirstName.setText("First Name");
    }
});

感谢您的宝贵时间。

【问题讨论】:

    标签: java swing focus textfield focuslistener


    【解决方案1】:

    您必须为您的 focusLostfocusGained 侦听器实现一个 IF 子句。所以做这样的事情:

    public void focusLost(FocusEvent e) {
            if(txtFirstName.getText().trim().equals(""))
               txtFirstName.setText("First Name");
            else
               //do nothing
        }
    

    对于focusGained()

    public void focusGained(FocusEvent e) {
            if(txtFirstName.getText().trim().equals("First name"))
               txtFirstName.setText("");
            else
               //do nothing
        }
    

    或者类似的东西;)

    【讨论】:

      【解决方案2】:

      我要做的是,直到用户将数据输入到字段中 例如,有一个名为“First Name”的字段。当用户选择 字段“名字”文本消失,用户可以输入他们的 名。如果用户不键入任何内容,则应显示文本 再次在文本字段中。

      我认为您正在寻找提示,请参阅

      【讨论】:

        猜你喜欢
        • 2011-06-02
        • 2014-09-27
        • 2013-09-02
        • 2017-08-09
        • 1970-01-01
        • 2017-12-04
        • 2011-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多