我希望我的表具有以下静态列标题:“Name”,“Surname”,“DOB”, 但是我想在* .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" />
我用谷歌搜索了几个小时,但仍然没有去。
答案 0 :(得分:2)
您无法在UI Binder中设置FlexTable的单元格元素,可能您应该拥有自己的自定义窗口小部件,它呈现tr和td。例如,如此处所述:GWT table row as UiBinder
答案 1 :(得分:1)
当你声明provider = true
时,ui binder不是对象的实例,你需要在java类中实例化它
正确的代码是:
public PersonViewImpl(){
// enter code here
personTable = new FlexTable();
personTable.setText(0, 0, "Name");
personTable.setText(0, 1, "Surname");
personTable.setText(0, 2, "DOB");
}
答案 2 :(得分:0)
在第一行构造函数中缺少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
}
}