我有一个 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);
}
所以让我们想象一下,当在 groupTab 中单击 newGroupButton 时,我只想更改 profileTab 中标签的文本(而实际上它将是 ListBox 和其他元素)。
正如我所说,每次选择重新加载整个 profileTab 也是可以接受的。