如何使用LWUIT 1.4为边框设置标题?如何对奇数和对表行进行着色?

时间:2011-05-24 15:51:20

标签: java-me lwuit

我使用LWUIT 1.4

1)在我的Form中有一个基于BoxLayout(Y轴)的Container,有两个Label被添加到这个容器中,我想创建一个标题边框放入容器所以它围绕着两个标签。我知道创建一个边框,但我不知道如何用LWUIT 1.4设置边框的标题!那么如何使用LWUIT 1.4将标题设置为Border?

2)在我的表单中有一个基于DefaultTableModel类的表,其getValueAt方法是使用记录库的枚举实现的,我希望表的行根据行的索引着色:例如当行索引为奇数时,其背景颜色应为白色,如果行索引为对,则其背景颜色应为灰色。如何实现?

3)为什么TableLayout.Constraint方法不起作用?我想让Table的两列具有相同的大小,即每列的Table总宽度的50%,但是当我运行应用程序时,当第二列的数据不是第二列时,第二列的大小不同够长了 !那么如何使列的大小相同呢?

非常感谢你

2 个答案:

答案 0 :(得分:1)

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, topY, 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, topY, TITLE_MARGIN , thickness); //top (segment before the title)
    g.fillRect(x+TITLE_MARGIN +titleW+TITLE_SPACE*2, topY, width-(TITLE_MARGIN +titleW+TITLE_SPACE*2), thickness); //top (segment after the title)
    g.drawString(borderTitle, x+TITLE_MARGIN+TITLE_SPACE, y+(topPad-f.getHeight())/2);
}

g.fillRect(x, y+height-thickness, width, thickness); //bottom
g.fillRect(x, topY, thickness, height); //left
g.fillRect(x+width-thickness, topY, thickness, height); //right

2)导出表并覆盖方法:

protected Component createCell(Object value, int row, int column, boolean editable)

调用super.createCell()并将返回值的UIID适当地设置为“OddRow”,“EvenRow”。将资源编辑器或主题中的样式设置为您喜欢的任何内容。

3)我不知道这个问题。如果在当前SVN上发生这种情况,您应该在项目问题跟踪器中提交问题。

答案 1 :(得分:1)

我从您的博客站点下载了最新的资源编辑器,并且我定义了组件TableCell的背景和边框“选定”版本,但是当我点击最后一列表格单元格时,额外矩形总是在运行时显示!我试图在组件f tableName.repaint()实现的方法中调用ocusGained(),因为我将它注册到focuslistener,但矩形不会消失。 我创建了一个Dialog来显示所选的行号,当我点击第三个软键时显示Dialog,然后矩形消失了!表格单元格可能会失去焦点!每当我开火,我就会得到和以前一样的行号;所以没有行号错误。那么我应该编写什么代码,或者我应该在编辑器中编辑哪些属性以获得与显示对话框相同的效果以使矩形消失?