2

当用户输入文本“搜索:”时,我正在尝试将默认标签添加到 searchField 中。我试过这个

editedField.setLabel("search:")

但这不起作用,因为当我放置字符串搜索时,不要擦除。例如,如果我输入“a”,它会显示 searcha。你能帮我吗?非常感谢。

4

3 回答 3

3

基本上,您需要在TextField.

您需要覆盖其paint方法,您可以使用以下代码:

protected void paint(Graphics graphics) {
   if (beditfield.getText().length() == 0) 
   {
        graphics.setColor(Color.GRAY);
        graphics.drawText("Search", 0, 0);
   }
   graphics.setColor(Color.WHITE);
   invalidate();
   super.paint(graphics);
}

它检查文本字段的长度。当它为零时,它会在那里绘制提示。

于 2012-09-04T13:15:43.543 回答
1

重写onFocus方法,当字段获得焦点时,清除其内容。

要设置文本字段内容,请使用setText方法,而不是setLabel

于 2012-09-04T12:22:36.637 回答
1

试试这个 -

private String test="";
final EditField email_edit = new EditField("", "", 30,BasicEditField.FILTER_DEFAULT) {
    String emptyString = "Search";
    protected void paint(Graphics g) {
        int oldColor = g.getColor();
        try {
             g.setColor(0x959595);
             test = super.getText();
             if ( test == null || test.length() < 1 ) {
                 g.drawText(emptyString, 0, 0); 
             }
             super.paint(g);
        } finally {
             g.setColor(oldColor);
        }
    }
};
于 2012-09-04T13:14:12.117 回答