java - SmartGWT,将 HTML 附加到 HTMLPane

标签 java javascript gwt smartgwt

我目前正在使用 SmartGWT,并一直在尝试获得一种将面板(例如 gwt Standard VerticalPanel)包含到智能 GWT 窗口中的方法。使用 VerticalPanel 的原因是我可以将小部件附加到 verticalpanel 对象,而无需重新设置整个内容,例如:

HTMLPane hPaneObj = new HTMLPane();  
hPaneObj.setContents("Foo");

现在追加我只能看到我能做的:

hPaneObj.setContents(hPaneObj.getContents() + "Bar");

这不是我需要的。

问题出现在我添加 VerticalPanel 之后,即使使用以 true 作为参数调用的“setCanSelectText”方法,我也无法选择窗口内的任何文本。下面是我放在一起的一个简短示例:

 public void onModuleLoad() {
  Window theWindow = new Window();
  theWindow.setTitle("Good evening");
  theWindow.setWidth(500);
  theWindow.setHeight(500);
  theWindow.setCanSelectText(true);

  VerticalPanel vp = new VerticalPanel();
  vp.add(new HTML("foo"));
  vp.add(new HTML("bar"));
  theWindow.addItem(vp);
  Canvas canvas = new Canvas();
  canvas.addChild(theWindow);
  canvas.draw();
 }

我很惊讶,但是 HTMLPane 不允许我在不重置整个内容的情况下追加。

任何建议将不胜感激,但我需要能够“附加”到面板。我不是特别喜欢使用垂直面板的想法,但是我需要找到一种允许上述操作的方法,或者允许我允许访问垂直面板,即选择文本。

非常感谢

克里斯托弗。

最佳答案

VerticalPanel使用 html table创建它的内容,在这种情况下很可能不是您想要的内容。一般来说,在 HTML 中,不可能在现有内容之外添加纯 HTML,因为 xml 的性质。例如,如果您有以下 html <div>some text</div> .如果要添加文本,要添加的点必须相对于 div标签,不可能在 some 之间添加内容,例如和 text无需重新插入整个文本。

在您的情况下,您可能希望使用 FlowPanel (这是一个 div )并添加带有 InlineHTML 的 HTML (用 span 包装 HTML)。如果您不想要 span包装后,您将不得不像在 HTMLPane 中一样重新插入文本示例。

关于java - SmartGWT,将 HTML 附加到 HTMLPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363132/

相关文章:

javascript - JavaScript 中的类型定义

java - GWT - 如何构建一棵动态地从服务器带来儿子的树?

gwt - 打开特定节点的 GWT 单元树

java - 如何在子组件中包含标准HST组件的所有参数?

java - 使用嵌套 for 循环创建带星号的三角形

javascript - 全日历选择方法

javascript - 在 Javascript/Lodash 中更新对象数组中的单个对象字段

java - 从 GWT 开发模式到 glassfish v3 的 EJB JNDI 查找

java - 需要将带有链接(快照引用)的html文件转换为word文件

Java Integer.MAX_VALUE 和 Integer.MIN_VALUE