将标签添加到智能gwt中的复选框项目

时间:2015-04-06 08:46:01

标签: smartgwt

我需要在智能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);

1 个答案:

答案 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.