gwt将自定义小部件添加到面板

Pro*_*mer 3 gwt widget

我创建了一些类,在其中创建了一组小部件(例如标签,文本框).我想动态创建小部件并将其添加到面板.我怎样才能做到这一点.

Fed*_*rne 8

假设您使用Horizo​​ntalPanel,VerticalPanel,FlowPanel或其他具有add(Wiget)方法的面板,您只需调用add(myWidget);

final VerticalPanel panel = new VerticalPanel();

final Button sendButton = new Button("Add widget");
panel.add(sendButton);
sendButton.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
        panel.add(new Label(new Date().toString()));
    }
});

RootPanel.get().add(panel);
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用setVisible(boolean)来显示和隐藏小部件,而不是添加和删除小部件.

final VerticalPanel panel = new VerticalPanel();

final Button sendButton = new Button("Toggle visibility");
panel.add(sendButton);

final Label label = new Label(new Date().toString());
panel.add(label);

sendButton.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
        label.setVisible(!label.isVisible());
    }
});

RootPanel.get().add(panel);
Run Code Online (Sandbox Code Playgroud)