如何使用 UiBinder 以声明方式设置 GWT Flextable 第一行(即标题)?

发布于 2024-12-29 02:46:34 字数 595 浏览 2 评论 0原文

我希望我的表格具有以下静态列标题:“姓名”、“姓氏”、“出生日期”、 但我想在 *.ui.xml 中声明它们(而不是在代码中)。

现在,我正在通过这样的代码来完成它:

public PersonViewImpl extends Composite implements PersonView {
    /*Lots of code removed for clarity*/

    @UiField (provided = true) FlexTable personTable;

    public PersonViewImpl(){
        personTable.setText(0, 0, "Name");
        personTable.setText(0, 1, "Surname");
        personTable.setText(0, 2, "DOB")    
    }
}

我在我的 PersonView.ui.xml 中有这个

<g:FlexTable ui:field="personTable" />

我已经用谷歌搜索了几个小时,但仍然没有成功。

I want my table to have the following static column headings: "Name", "Surname", "DOB",
but I want to declare them in *.ui.xml (rather than in code).

Right now, I'm doing it via code like this:

public PersonViewImpl extends Composite implements PersonView {
    /*Lots of code removed for clarity*/

    @UiField (provided = true) FlexTable personTable;

    public PersonViewImpl(){
        personTable.setText(0, 0, "Name");
        personTable.setText(0, 1, "Surname");
        personTable.setText(0, 2, "DOB")    
    }
}

I have this in my PersonView.ui.xml

<g:FlexTable ui:field="personTable" />

I've googled for hours, but still no go.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

や三分注定 2025-01-05 02:46:34

您无法在 UI Binder 中设置 FlexTable 的单元格元素,也许您应该拥有自己的自定义小部件来呈现 tr 和 td。例如,如下所述: GWT 表行作为 UiBinder< /a>

You cannot set FlexTable's cell elements in UI Binder, probably you should have your own custom widget which renders tr and td. For example, like explained here: GWT table row as UiBinder

胡大本事 2025-01-05 02:46:34

当您声明provider = true时,ui绑定器不会实例化对象,您需要在java类中实例化它
正确的代码是:

public PersonViewImpl(){
    // enter code here
    personTable = new FlexTable();
    personTable.setText(0, 0, "Name");
    personTable.setText(0, 1, "Surname");
    personTable.setText(0, 2, "DOB");
}

when you declare provider = true, the ui binder not instance the object, you need to instance it in your java class
the right code is:

public PersonViewImpl(){
    // enter code here
    personTable = new FlexTable();
    personTable.setText(0, 0, "Name");
    personTable.setText(0, 1, "Surname");
    personTable.setText(0, 2, "DOB");
}
伴我心暖 2025-01-05 02:46:34

构造函数第一行缺少 initWidget( uiBinder.createAndBindUi(this) );

试试这个:

public class PersonViewImpl extends Composite implements PersonView {
    /*Lots of code removed for clarity*/

    @UiField (provided = true) FlexTable personTable;

    public PersonViewImpl(){
        initWidget( uiBinder.createAndBindUi(this) );
        // TODO your code
    }
}

Missing initWidget( uiBinder.createAndBindUi(this) ); on first line of constructor.

try this:

public class PersonViewImpl extends Composite implements PersonView {
    /*Lots of code removed for clarity*/

    @UiField (provided = true) FlexTable personTable;

    public PersonViewImpl(){
        initWidget( uiBinder.createAndBindUi(this) );
        // TODO your code
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文