Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 显示图像+;suggestBox()中的文本_Gwt_Suggestbox - Fatal编程技术网

Gwt 显示图像+;suggestBox()中的文本

Gwt 显示图像+;suggestBox()中的文本,gwt,suggestbox,Gwt,Suggestbox,我正在尝试使用SuggestBox和MultiWordSuggestOracle在建议下拉列表中显示图标和文本,代码如下: public class Suggestions implements Suggestion { private String suggestion; public Suggestions(){} public Suggestions(String suggestion){ this.suggestion = new Strin

我正在尝试使用SuggestBox和MultiWordSuggestOracle在建议下拉列表中显示图标和文本,代码如下:

public class Suggestions implements Suggestion {

    private String suggestion;

    public Suggestions(){}

    public Suggestions(String suggestion){
        this.suggestion = new String( suggestion );
    }
    @Override
    public String getDisplayString() {
        return ( suggestion + " <img src='/images/image.png'/> " );
    }
    @Override
    public String getReplacementString() {
        return suggestion;
    }}
 MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(){
          @Override
          public boolean isDisplayStringHTML() {
              return true;
          }};  
          oracle.add(new Suggestions("A").getDisplayString());
      SuggestBox suggestionBox = new SuggestBox(oracle);
问题:html代码作为普通文本打印。你们能告诉我密码有什么问题吗


塔克斯

因为你的建议类从未被使用过

多字甲骨文只有显示字符串,并创建自己的建议项

只需覆盖oracle中的methode createSuggestion:

MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(){
      @Override
      public boolean isDisplayStringHTML() {
          return true;
      }

      @Override
      protected MultiWordSuggestion createSuggestion(String replacementString, String displayString) {
         return new Suggestions(replacementString);
      }
};  
oracle.add(new Suggestions("A").getDisplayString());
SuggestBox suggestionBox = new SuggestBox(oracle);

下面是我在建议下拉列表中获得图像+文本的步骤

public class Suggestions implements Suggestion {

    private String suggestion;

    public Suggestions(){}

    public Suggestions(String suggestion){
        this.suggestion = new String( suggestion );
    }
    @Override
    public String getDisplayString() {
        return ( suggestion + new Image('/images/image.png') );
    }
    @Override
    public String getReplacementString() {
        return suggestion;
    }}

OnModuleLoad function is: 

MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(){
      @Override
      public boolean isDisplayStringHTML() {
          return true;
      }

      @Override
      protected MultiWordSuggestion createSuggestion(String replacementString, String displayString) {
         return new Suggestions(replacementString);
      }
};  
oracle.add("A");
SuggestBox suggestionBox = new SuggestBox(oracle);

非常感谢。我有几个疑问。。1.这个建议的效果如何?2.我的代码仍然不起作用。“无法从建议转换为MultiWordSuggestOracle.MultiWordSuggestOracle”时引发类型不匹配错误。当我将“建议”类更改为扩展“MultiWordSuggetion”类时,错误消失了,但代码仍然不起作用。当我在建议框中选择任何一个建议时,图像标记显示为文本。(图像标记在下拉列表中不可见)。非常感谢。在我用GWT图像小部件替换Suggestion类中“getDisplayString”中的标记后,我的代码工作正常。并使用了“oracle.add”(“A”)而不是“oracle.add(new Suggestions”(“A”).getDisplayString()”),但我还是很想知道Suggestion在内部是如何工作的。感谢您的指导。suggestbox是一个文本框,您只能显示html建议,它可以用于以粗体显示查询文本,但很好,建议是一个文本值。为什么要使用gwt图像小部件?我想显示图像和文本,当您搜索某人时,会出现在facebook上。标记不起作用,所以我使用了图像小部件(我猜,GWT无法解释html标记)?只需调用该类的toString()即可创建映像的实例。与:建议+“”;但您不能仅为它实例化一个新对象。@patricedesainsteban最初我使用suggestion+“”,但由于某些原因它无法工作。这就是我使用图像对象的原因。现在我意识到了,请原谅我使用了“新字符串(建议)”。我在很长一段时间(近7年)后开始编写代码。