Java 文本框中的文本

Java 文本框中的文本,java,gwt,user-interface,textbox,Java,Gwt,User Interface,Textbox,我对gwt框架非常陌生,我正在使用它来构建我网站的ui, 我想让文本框中有一个文本,一旦用户第一次点击它,文本就会消失。在剩下的时间里,它的行为就像一个普通的文本框 有什么想法吗?您可以在框中添加一个clickHandler。 在处理程序中,您可以轻松地执行以下操作: if(text==DEFAULT_TEXT) { text=="" } 如果有人要再次编写相同的DEFAULT\u文本,它将再次被删除。 如果要避免这种情况,请在检查表达式中添加布尔变量。无法区分GWT,但一般方法可以是: 使用

我对gwt框架非常陌生,我正在使用它来构建我网站的ui, 我想让文本框中有一个文本,一旦用户第一次点击它,文本就会消失。在剩下的时间里,它的行为就像一个普通的文本框


有什么想法吗?

您可以在框中添加一个
clickHandler
。 在处理程序中,您可以轻松地执行以下操作:

if(text==DEFAULT_TEXT)
{
text==""
}
如果有人要再次编写相同的
DEFAULT\u文本
,它将再次被删除。
如果要避免这种情况,请在检查表达式中添加布尔变量。

无法区分GWT,但一般方法可以是:

  • 使用变量来标记文本框是“已初始化”还是“正在使用”
  • 向文本小部件添加一个侦听器(我会使用键盘侦听器,当用户开始输入文本时,而不是在第一次(可能是意外)鼠标单击时,使文本消失)
  • 当侦听器接收到小部件的第一个事件(flag='initialized')时,清除该标志并用实际的击键替换文本字段中的文本

  • (对于单击侦听器:第一次单击小部件时,清除标志和文本框。)

    创建文本框时,设置默认文本并添加键盘侦听器:

    TextBox box = new TextBox();
    box.setText("Default Text");
    box.addKeyboardListener(this);
    defaultValue = true; // this is a global boolean value
    
    然后让您的类实现KeyboardListener,将它们全部留空,除了:

    public void onKeyPress(Widget arg0, char arg1, int arg2) 
    {
        if(defaultValue)
        {
            box.setText = "";
            defaultValue = false;
        }
    }
    

    是的,我想做一些类似的事情,但我认为这是textbox的一个常见用法,可以肯定的是,有一些东西是现成的。。。无论如何,非常感谢您提供的代码示例