我正在尝试了解有关sqlcontainer的更多信息,并且能够使用来自sql server的数据创建只读表。我已经使用了freeformquery,例如" select * from table1"。现在我正在尝试更改表格的列标题。我所做的是使用freeformquery设置sqlcontainer并将表的数据源设置为该sqlcontainer。
我从api看到有一个setColumnHeader方法,它接受propertyId和一个字符串。我如何获得第一列或第二列的属性?
答案 0 :(得分:2)
Table.setColumnHeader()
是您正在寻找的:propertyId实际上是容器中字段的名称。所以,如果你有
SELECT id, name FROM person
你可以做到
table.setColumnHeader("id", "Table key");
table.setColumnHeader("Name", "Person's name");
遗憾的是,没有直接设置位置,但如果需要,您可以执行类似
的操作List<Object> ids = Arrays.asList(categorieTable.getItemIds().toArray());
categorieTable.setColumnHeader(ids.get(0), "Table key");
categorieTable.setColumnHeader(ids.get(1), "Person's name");
答案 1 :(得分:0)
在这种情况下,table propertyIds是数据库中的列名。您可以使用方法table.getContainerPropertyIds()
获取表propertyIds给定具有两列的数据库表&#34; id&#34;和&#34;名称&#34;你可以改变&#34; id&#34;标题为&#34;圣诞老人Id&#34;使用以下代码(您不必迭代,我只想展示如何获取propertyIds):
Collection<?> columnIds = table.getContainerPropertyIds();
for(Object propertyId : columnIds)
{
if(propertyId.equals("id"))
{
table.setColumnHeader(propertyId, "Santa Claus Id");
}
}