come cambiare un contenuto tabpanel?
Domanda
Come posso sostituire una scheda di TabPanel con un nuovo testo.
nel codice seguente voglio sostituire text4 in scheda uno.
in altre parole, quando uno spettacolo scheda è un widget (come testo1) come posso cambiare il suo contenuto con un altro widget (come text4)
public void onModuleLoad() {
String text1 = "1111111111111111111111111111 ...";
String text2 = "2222222222222222222222222222...";
String text3 = "3333333333333333333333333333...";
String text4 = "4444444444444444444444444444...";
TabPanel panel = new TabPanel();
FlowPanel flowpanel;
flowpanel = new FlowPanel();
flowpanel.add(new Label(text1));
panel.add(flowpanel, "One");
flowpanel = new FlowPanel();
flowpanel.add(new Label(text2));
panel.add(flowpanel, "Two");
flowpanel = new FlowPanel();
flowpanel.add(new Label(text3));
panel.add(flowpanel, "Three");
panel.selectTab(0);
/* in this line exactlly , How can i raplace text4 in tab(one) */
panel.setSize("500px", "250px");
panel.addStyleName("table-center");
RootPanel.get("demo").add(panel);
}
Soluzione
Il modo più semplice è tenere label1 e cambiare il valore ogni volta che vuoi
Label label1 = new Label(text1)
flowpanel.add(label1);
...
label1.setText(text4);
Se non hai fatto questo allora si può fare così:
FlowPanel f = (FlowPanel) panel.getWidget(0); // first added Widget (flowpanel)
Label l = (Label) f.getWidget(0); // first added widget to panel (label)
l.setText(text4); // change the text
Altri suggerimenti
Penso che quello che dovete fare è mantenere un riferimento alla etichetta e quindi modificare il testo per l'etichetta. Penso che sia probabilmente ma è difficile dire quanto si dice sostituire text4 che non si usa in questo esempio.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow