Java gwt动态添加文本框
单击addDynamicTextboxbutton按钮时,将执行此方法并创建新的文本框。如何拥有另一个按钮,以便在单击时从每个“textbox()”中获取所有值?或者,是否有必要输入名称“newtextbox(“name”)”,以便获取它们的所有值?执行此操作的最佳实践方法是什么?您可以使用集合来存储新添加的Java gwt动态添加文本框,java,gwt,uibinder,Java,Gwt,Uibinder,单击addDynamicTextboxbutton按钮时,将执行此方法并创建新的文本框。如何拥有另一个按钮,以便在单击时从每个“textbox()”中获取所有值?或者,是否有必要输入名称“newtextbox(“name”)”,以便获取它们的所有值?执行此操作的最佳实践方法是什么?您可以使用集合来存储新添加的文本框,以后可以从中获取所有值。大概是这样的: @UiHandler("addDynamicTextboxbutton") void addMoreTextbox(ClickEvent
文本框
,以后可以从中获取所有值。大概是这样的:
@UiHandler("addDynamicTextboxbutton")
void addMoreTextbox(ClickEvent event) {
textboxplaceholder.add(new TextBox(),"textboxplace");
}
公共类测试扩展了复合{
私有静态TestUiBinder=GWT.create(TestUiBinder.class);
接口TestUiBinder扩展了UiBinder{}
@尤菲尔德
FlowPanel文本框占位符;
@尤菲尔德
按钮addDynamicTextboxbutton;
私人链接列表框;
公开考试(){
initWidget(uiBinder.createAndBindUi(this));
box=新链接列表();
}
@UiHandler(“addDynamicTextboxbutton”)
void addmore文本框(单击事件){
TextBox=新的TextBox();
textboxplaceholder.add(框);
框。添加(框);
}
}
迭代存储在
框中的框
以获取所有值 如果textboxplaceholder
是ComplexPanel
的扩展名,例如FlowPanel
,您可以简单地迭代FlowPanel
的子级:
public class Test extends Composite {
private static TestUiBinder uiBinder = GWT.create(TestUiBinder.class);
interface TestUiBinder extends UiBinder<Widget, Test> {}
@UiField
FlowPanel textboxplaceholder;
@UiField
Button addDynamicTextboxbutton;
private LinkedList<TextBox> boxes;
public Test() {
initWidget(uiBinder.createAndBindUi(this));
boxes = new LinkedList<TextBox>();
}
@UiHandler("addDynamicTextboxbutton")
void addMoreTextbox(ClickEvent event) {
TextBox box = new TextBox();
textboxplaceholder.add(box);
boxes.add(box);
}
}
for (Widget w: textboxplaceholder) {
if (w instanceof TextBox) {
// do something value: ((TextBox)w).getValue();
}
}