[英]Java Script Type Error while adding Stock Chart to GWT SimplePanel
[英]Adding button to SimplePanel results in error
我正在GWT中执行以下操作
public class FooPanel extends SimplePanel {
private String url;
public FooPanel () {
super(DOM.createAnchor());
Button button = new Button();
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
foo();
}
});
add(button);
}
}
但是,当我运行代码时,出现以下错误
SimplePanel can only contain one child widget
但是Button是一个小部件,所以我不确定是什么问题? 如果我不添加按钮,则不会发生此问题
查看SimplePanel#add()
源代码以分析此错误。
@Override
public void add(Widget w) {
// Can't add() more than one widget to a SimplePanel.
if (getWidget() != null) {
throw new IllegalStateException("SimplePanel can only contain one child widget");
}
setWidget(w);
}
现在从源代码中可以很明显地看出, 您已经在SimplePanel
添加了小部件 。
调用SimplePanel#getWidget()
以获取已添加的小部件。
查看默认构造函数的源代码是否为SimplePanel
类。 它可以帮助您了解SimplePanel
如何将小部件封装在其中。
/**
* Creates an empty panel that uses a DIV for its contents.
*/
public SimplePanel() {
this(DOM.createDiv());
}
删除此行:
super(DOM.createAnchor());
不用了
您可以在代码中简单地使用Button,或扩展Button小部件。 将按钮添加到SimplePanel不会带来任何好处。
尝试使用setWidget(button);
而不是add(button);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.