2009-12-03 86 views
1

我很新的gwt框架,我用它来构建我的网站的用户界面, 我想使文本框中有一个文本,一旦用户点击它文字第一次消失。并在其余时间它的行为像一个正常的文本框文本框中的文本

有关如何做到这一点的任何想法?

回答

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

你们,我是这样做类似的东西,但我认为它我这是一个常用的文本框,肯定有一些开箱即用的... 任何方式非常感谢代码示例 – special0ne 2009-12-03 18:12:54

1

您可以在框中添加clickHandler。 内处理你做容易的事情:

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

如果有人会再写给DEFAULT_TEXT它会再次获得歼灭。 如果您想避免在检查表达式中添加布尔变量。

0

不能告诉它的GWT,但一般的做法可以是:

  1. 使用一个变量来标记,无论是“在使用”文本框“初始化”或
  2. 添加监听到文本小部件(我会使用KeyboardListener,并使文本消失时,用户开始输入文本,而不是第一个 - 也许意外 - 鼠标点击)
  3. 当侦听器接收第一个事件的小部件(标志= '初始化'),清除标志并用实际击键代替文本字段内的文本。

(一个点击监听器:在对插件的第一次点击清除标记和文本框)。