问题描述
|
我使用LWUIT 1.4
1)在我的窗体中有一个基于BoxLayout(Y轴)的容器,此容器中添加了两个Label,我想创建一个标题为Border的容器放置在容器中,以便它包围两个标签。我知道要创建边框,但是我不知道如何使用LWUIT 1.4为边框设置标题!那么,如何使用LWUIT 1.4为Border设置标题?
2)在我的窗体中有一个基于DefaultTableModel类的表,该表的getValueAt方法是通过记录存储的枚举实现的,我希望该表的行根据该行的索引进行着色:例如,当该行index为奇数,则其背景色应为白色,如果行索引为pair,则其背景色应为灰色。如何实现呢?
3)为什么TableLayout.Constraint方法不起作用?我想使一个表的两列具有相等的大小,即每列的表总宽度的50%,但是当我运行该应用程序时,当第一列与第二列的数据不相等时,它们的大小不相等足够长了 !那么如何使列大小相等?
真的非常感谢你
解决方法
1)行李箱中有一个带标题的边框,但我认为它是在1.4中添加的。
您可以通过重写Container paintBorder方法来绘制类似的内容(注意,您将需要足够的组件填充以使边框正确显示。这是SVN版本的代码,应进行很少的更改(只需将c更改为此即可):
Font f=c.getStyle().getFont();
int titleW=f.stringWidth(borderTitle);
int topPad=c.getStyle().getPadding(Component.TOP);
int topY=y+(topPad-thickness)/2;
if (c.isRTL()) {
g.fillRect(x+width-TITLE_MARGIN,topY,TITLE_MARGIN,thickness); //top (segment before the title)
g.fillRect(x,width-(TITLE_MARGIN +titleW+TITLE_SPACE*2),thickness); //top (segment after the title)
g.drawString(borderTitle,x+width-(TITLE_MARGIN +titleW+TITLE_SPACE),y+(topPad-f.getHeight())/2);
} else {
g.fillRect(x,thickness); //top (segment before the title)
g.fillRect(x+TITLE_MARGIN +titleW+TITLE_SPACE*2,x+TITLE_MARGIN+TITLE_SPACE,y+(topPad-f.getHeight())/2);
}
g.fillRect(x,y+height-thickness,width,thickness); //bottom
g.fillRect(x,thickness,height); //left
g.fillRect(x+width-thickness,height); //right
2)派生表并覆盖该方法:
protected Component createCell(Object value,int row,int column,boolean editable)
调用super.createCell()并将返回值的UIID设置为\“ OddRow \”,\“ EvenRow \”。在资源编辑器或主题中将样式设置为您喜欢的任何样式。
3)我不知道这样的问题。如果在当前的SVN上发生这种情况,则应在项目问题跟踪器中提出问题。
,我从您的博客站点下载了最新的资源编辑器,并定义了组件TableCell的背景和边框“选定”版本,但是当我单击最后一个列表单元格时,总是在运行时显示该矩形!我尝试在组件focusGained()
实现的方法中调用tableName.repaint()
,因为我已将其注册到focuslistener,但矩形并没有消失。
我创建了一个对话框来显示选定的行号,当单击第三个软键时显示对话框时,矩形消失了!也许焦点从表格单元格消失了!每当我开火时,我就会得到与以前相同的行号;因此没有行号错误。因此,我应该编写什么代码,或者应该在编辑器中编辑什么属性,以获得与显示对话框以使矩形消失一样的效果?