我有一個GWT選項卡面板,並希望在某個事件(例如按鈕單擊)在另一個選項卡中發生時重新加載單個選項卡。有沒有辦法做到這一點? 另一種可能性是在選擇該選項卡時執行某些代碼(例如,向選項卡添加新元素)。 任何幫助將非常感激,我堅持了一段時間了。GWT:重新加載選項卡面板中的單個選項卡
爲了使問題更具體,我在下面提供了一些代碼。
我有我的代碼組織在屏幕上,有一個主屏幕,啓動選項卡面板。並且每個選項卡都有獨立的屏幕。
,主屏幕的簡化代碼:
public class HomeScreen extends Composite{
public HomeScreen() {
TabPanel tabPanel = new TabPanel();
FlowPanel flowpanel;
flowpanel = new FlowPanel();
ProfileTabScreen profileTabScreen = new ProfileTabScreen();
flowpanel.add(profileTabScreen);
tabPanel.add(flowpanel, "Profile");
flowpanel = new FlowPanel();
GroupsTabScreen groupsTabScreen = new GroupsTabScreen();
flowpanel.add(groupsTabScreen);
tabPanel.add(flowpanel, "Groups");
initWidget(tabPanel);
}
}
代碼的標籤頁面,該我想要啓動重裝:
private VerticalPanel groupPanel = new VerticalPanel();
private Button newGroupButton = new Button("New group");
public GroupsTabScreen() {
newGroupButton.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
createNewGroup();
}
});
groupPanel.add(newGroupButton);
initWidget(groupPanel);
}
代碼必須被重新加載標籤屏幕:
private VerticalPanel profilePanel = new VerticalPanel();
private Label label = new Label("No groups yet.");
public ProfileTabScreen() {
profilePanel.add(label);
initWidget(profilePanel);
}
因此,讓我們想象我只是想更改profileTab中的標籤文本(whi實際上它會是ListBox和其他元素),當newGroupButton在groupTab中被點擊時。
正如我所說,每次重新加載整個profileTab被選中也是可以接受的。
我不確定如何將單擊偵聽器添加到選項卡面板以及如何從選項卡面板訪問選項卡中的元素。爲了使我的問題更具體,我添加了一些簡化的程序代碼。 – april
我編輯了我的以及:-) – Corsair
感謝您的回覆。在使用它們並使用getter和setter之前定義元素的想法非常有用。但我無法讓它與你所提示的例子一起工作:profileTabScreenPanel.getLabel()。setText(「New Text」);另一方面,它的工作原理如下:HomeScreen.getProfileTabScreen()。getLabel()。setText(「some text」);我添加了兩個getter方法,一個在HomeScreen類中,另一個在ProfileTabScreen類中。 – april