![](/img/trans.png)
[英]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.