我需要在智能GWT的复选框中添加标签。例如,我有三种水果:苹果,芒果和香蕉。如何添加标签Fruits作为标题。我也无法使用CheckboxGroup。
CheckBox check1 = new CheckBox();
check1.setBoxLabel("Classical");
CheckBox check2 = new CheckBox();
check2.setBoxLabel("Rock");
check2.setValue(true);
CheckBox check3 = new CheckBox();
check3.setBoxLabel("Blue");
CheckBoxGroup checkGroup = new CheckBoxGroup();
checkGroup.setFieldLabel("Music");
checkGroup.add(check1);
checkGroup.add(check2);
checkGroup.add(check3);
答案 0 :(得分:1)
Hy Abhaya,首先我不知道您使用的智能GWT的版本,但我可以看到这不是智能GWT,它更像是gwt组件,而CheckBoxGroup是一些awt组件。
如果您想使用智能GWT复选框组件,请使用CheckboxItem小部件,如果其项目意味着您需要使用动态表单。
所以我们说:
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.DynamicForm;
CheckBoxItem item1 = new CheckBoxItem();
item1.setTitle("Classical");
CheckBoxItem item2 = new CheckBoxItem();
item1.setTitle("Rock");
所以现在我们有2个复选框项,我们需要把它们放在这样的动态形式中(我设置了边框,所以你可以看到会发生什么):
DynamicForm box = new DynamicForm();
box.setBorder("1pt solid red")
box.setFields(item1,item2);
让我们画出:
box.draw();
这是输出: drawn dynamic form
好了,现在我们需要标题,最好的方法是在动态表单之前添加标签。现在动态表单是根元素,让我们把它放在一些布局(新包)中,布局将是垂直的,所以对于每个新成员,它将是另一个下面的一个:
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.Label;
Label title = new Label();
title.setContents("Music");
title.setHeight(20);
VLayout lay = new VLayout();
lay.setBorder("1pt solid black");
lay.addMember(title);
lay.addMember(box);
所以我们在布局中添加了标题,然后在名为“box”的动态表单中添加了标题,现在你不需要绘制()框,只需要布局,因为该布局包含将自动绘制的标签和框:
lay.draw();
输出是这样的: drawn vertical layout
这是一点点风格的外观: Styled look
整个代码:
CheckboxItem item1 = new CheckboxItem();
item1.setTitle("Classical");
CheckboxItem item2 = new CheckboxItem();
item2.setTitle("Rock");
CheckboxItem item3 = new CheckboxItem();
item3.setTitle("Metal");
CheckboxItem item4 = new CheckboxItem();
item4.setTitle("House");
DynamicForm box = new DynamicForm();
box.setFields(item1,item2, item3, item4);
box.setWidth100();
box.setHeight100();
box.draw();
Label title = new Label();
title.setContents("<h3>Music:</h3>");
title.setHeight(20);
VLayout lay = new VLayout();
lay.setMargin(20);
lay.setBorder("1pt solid black");
lay.setPadding(10);
lay.setBackgroundColor("#e6e6e6");
lay.addMember(title);
lay.addMember(box);
lay.draw();
在属性setContents()中,你可以使用HTML标签和CSS
我希望它有所帮助。 此致,Jakov A.