1

一天前我问了一个关于星号和图像的问题,我想将它放在带有文本的标签旁边。然而,图像显示了两次,我仍在努力掌握这一点,因为我仍在学习 UiBinder 和 Gwt。

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">

<ui:style type="com.equillore.mcmexternal.client.ui.IndicatorLabel.Style">
    @sprite .mySpriteClass {gwt-image: "imageAccessor"; other: property;}
    .required
     {
        gwt-image: 'requiredImage';
        width: 7px;
        height: 14px;
    }
    .labRequired
    {
        color:#303030;
        font-family: Tahoma, Geneva, sans-serif;
        font-size:10pt;
        font-style:normal;
        font-weight:lighter;
    }
</ui:style>
<g:SimplePanel width='90px' height='21px'>
<g:Grid>
    <g:row>
        <g:customCell>
            <g:Label ui:field="label" addStyleNames="{style.labRequired}"/>
        </g:customCell>
        <g:customCell>
            <g:Label addStyleNames="{style.required}"/>
        </g:customCell>
    </g:row>
</g:Grid>
</g:SimplePanel>

如果我删除以下行

 <ui:image field="requiredImage" src="images/required_indicator.gif"/>

如何在我的 java 文件中进行更改,以便正确显示星号的图像 这是 java 文件。

public class IndicatorLabel extends Composite implements HasText {

public interface Binder extends UiBinder<Widget, IndicatorLabel> {
}

private static final Binder binder = GWT.create(Binder.class);

public interface Style extends CssResource {

    String required();
}

@UiField Style style;
@UiField Label label;


public IndicatorLabel() {

    initWidget(binder.createAndBindUi(this));


}

public IndicatorLabel(String text) {

    this();
    setText(text);
}

亲切的问候

4

1 回答 1

0

如果您只想显示不可点击的图像,更好的答案是仅使用 CSS 来设置标签的样式:

@sprite .requiredField 
{
  gwt-image: 'required';
  background-repeat: no-repeat;
  height: 12px;
  width: 150px;
  background-position: right top;
  padding-right:10px;
}

但无论如何,您应该在 ResourceBundle 上以不同的方式定义图像,如下所示:

@Source("save.png")
public ImageResource required();

您甚至不需要为此使用 UIBinder,但如果您的目标是学习它,我建议您尝试更密切地关注此文档:https ://developers.google.com/web-toolkit/doc/latest/ DevGuideUiBinder

于 2012-12-06T21:03:22.280 回答