我们怎样才能在gwt中使用css和字符串匹配,比如google搜索

时间:2014-04-30 05:58:12

标签: gwt

我是gwt的新手。我正在开发搜索小部件。我希望当用户输入文本框时,建议的字符串将显示给用户,某些字符以粗体显示,用户输入就像谷歌搜索一样..!enter image description here

请帮帮我..

 TextBox fnametextbox=new TextBox();

    Label l = new Label("search");

    VerticalPanel p = new VerticalPanel();

    public void onModuleLoad() 
    {
            fnametextbox.addKeyPressHandler(new KeyPress());

            RootPanel.get().add(l);

            RootPanel.get().add(fnametextbox);
    }
    public class KeyPress implements KeyPressHandler
    {
        public void onKeyPress(KeyPressEvent event)      
        {
            String ab =fnametextbox.getText();

            if(ab.length()>1)
                {
                    greetingService.infouser(ab,new AsyncCallback<String>()
                            {
                                @Override
                                public void onFailure(Throwable caught) 
                                    {
                                        Window.alert("Invalid");
                                    }


                                @Override
                                public void onSuccess(String result) 
                                    { 
                                        System.out.println(result);

                                        if(result==gresult)
                                            { 
                                                System.out.println("result");

                                                p.clear();

                                                Label lii = new Label("not found");

                                                p.setVisible(true);

                                                p.setBorderWidth(1);

                                                p.add(lii);

                                                RootPanel.get().add(p);
                                            }
                                        else
                                            {
                                                p.clear();

                                                p.setVisible(false);

                                                p.setVisible(true);

                                                p.setBorderWidth(1);

                                                int l=0;

                                                for (String retval: result.split("/"))
                                                    {
                                                        if(l==0)
                                                            {
                                                                Anchor an = new Anchor(retval,
                                                                        false,
                                                                        "http://localhost:8080/w1/",
                                                                        "_blank");
                                                                        p.add(an);
                                                                        l++;
                                                            }
                                                        else 
                                                            {
                                                                Label an=new Label(retval);
                                                                p.add(an);
                                                                l--;
                                                            }

                                                        RootPanel.get().add(p);
                                                    }   
                                                }

1 个答案:

答案 0 :(得分:0)

您是否尝试过{-3}}在构建中提供此功能?

enter image description here


- 编辑 -

使用接受SuggestBoxAnchor的不同构造函数。

示例代码

String retval = "en<b>glish to hindi</b>";

Anchor anchor = new Anchor(retval, true, "http://localhost:8080/w1/", "_blank");

示例代码:(动态更改html中的值)

String match = "en";
String result = "english to hindi/english speaking/english grammer/english songs";

for (String retval : result.split("/")) {
    String html = retval.replaceAll(match, "<b>" + match + "</b>");
    System.out.println(html);
    Anchor an = new Anchor(html, true, "http://localhost:8080/w1/", "_blank");
    ...
}

注意:不是一个很好的设计来获取由斜杠分隔的结果。如果搜索斜杠怎么办?