文本框中的文本

时间:2009-12-03 17:24:53

标签: java gwt user-interface textbox

我是gwt框架的新手,我用它来构建我的网站的ui, 我想让文本框中有一个文本,一旦用户第一次点击它,文本就会消失。在其他时间它的行为就像一个普通的文本框

关于如何做的任何想法?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以在框中添加clickHandler。 在处理程序中,您可以轻松完成以下操作:

if(text==DEFAULT_TEXT)
{
text==""
}

如果某人要再次写同一DEFAULT_TEXT,那么它将再次被删除。 如果你想避免在check表达式中添加boolean变量。

答案 2 :(得分:0)

无法告诉GWT,但一般方法可能是:

  1. 使用变量标记文本框是“初始化”还是“正在使用”
  2. 为文本小部件添加一个监听器(我使用KeyboardListener并在用户开始输入文本时使文本消失,而不是第一次 - 可能是意外 - 鼠标点击)
  3. 当侦听器收到窗口小部件的第一个事件(flag ='initialized')时,清除该标志并将文本字段内的文本替换为实际的击键。
  4. (对于点击监听器:在第一次点击窗口小部件时清除标志和文本框。)