为什么CardPanel中的Button不可见(Sencha gxt)

时间:2014-08-05 11:57:44

标签: gwt gxt

我不明白为什么我在Button看不到我的CardPanel。在最后一页上看不到UI组件。也许我错过了一些东西......

我们正在使用GXT 2.3.1

import com.extjs.gxt.ui.client.widget.CardPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class Foobar implements EntryPoint {

  @Override
  public void onModuleLoad() {
    CardPanel cpanel = new CardPanel();
    cpanel.setActiveItem(new Button("FooButton1"));
    RootPanel.get().add(cpanel);
  }
}

2 个答案:

答案 0 :(得分:2)

我从未使用过CardPanel,但我很确定你错了。

只有在窗口小部件已添加到面板中时,才能将窗口小部件设置为“活动”。在将其设置为活动之前,您需要将add()小部件添加到面板。

试试这个:

import com.extjs.gxt.ui.client.widget.CardPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class Foobar implements EntryPoint {

    @Override
    public void onModuleLoad() {
        CardPanel cpanel = new CardPanel();
        Button btn = new Button("FooButton1")
        cpanel.add(btn);
        cpanel.setActiveItem(btn);
        RootPanel.get().add(cpanel);
    }
}

答案 1 :(得分:1)

CardPanel#setActiveItem()方法用于设置布局中的活动(可见)项。

它不会在布局中添加项目。您需要使用LayoutContainer#add()方法在布局中添加项目,并且一次只能显示一个项目。

JavaDoc中的CardPanel状态是什么?

  

此容器包含多个小部件,每个小部件都适合容器,在任何给定时间只能看到单个小部件。此样式最常用于向导标签实施等。

注意:LayoutContainer不适用于此示例代码。

以下是CardLayout

Example