как изменить мембрану vPanel в смарте gwt - PullRequest
2 голосов
/ 18 марта 2012

Кто-нибудь знает, как изменить члена VPanel и HPanel динамически.У меня возникли проблемы, меняя член vpanel в смарт-gwt.Вот пример кода, пожалуйста, проверьте его.

import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.VLayout;

public class TestingLayout {

    VLayout layout = new VLayout();
    VLayout layout2 = new VLayout();
    Label label1;
    Label label2;
    Button button1;
    Button button2;

    public TestingLayout() {

        label1 = new Label("Lbl 1");
        label2 = new Label("Lbl 2");

        button1 = new Button("Add Label 1 ");
        button2 = new Button("Add Label 2 ");


        button1.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                layout2.clear();
                layout2.addMember(label1);

            }
        });

        button2.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                layout2.clear();
                layout2.addMember(label2);

            }
        });

        layout.addMember(button1);
        layout.addMember(button2);
        layout2.addMember(label1);

        VLayout mainLayout = new  VLayout();
        mainLayout.addMember(layout);
        mainLayout.addMember(layout2);

        mainLayout.draw();

    }
}

пожалуйста, проверьте его.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Чтобы изменить элементы макета, вам нужно использовать методы removeMembers () и addMembers ().Однако, чтобы изменить текст на этикетке, вам просто нужно использовать label.setContents("New COntent")

0 голосов
/ 22 марта 2012

Что я понял из вопроса, так это то, что вы хотите показать вторую метку при нажатии кнопки.

    VLayout vlayout = new VLayout();

    label1 = new Label("Lbl 1");
    label2 = new Label("Lbl 2");
    label1.setVisible(false);
    label1.setVisible(false);

    button1 = new Button("Add Label 1 ");
    button2 = new Button("Add Label 2 ");

    button1.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            label1.show();
            label1.setVisible(true);
        }
    });

     button2.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            label2.show();
            label2.setVisible(true);
        }
    });

    vLayout.addMember(label1);
    vLayout.addMember(label2);


    VLayout mainLayout = new  VLayout();
    mainLayout.addMember(layout);
    mainLayout.addMember(button1);
    mainLayout.addMember(button2);

    mainLayout.draw();
...