我目前正在使用 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/