0

我使用 LWUIT 1.4

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

2)在我的表单中有一个基于 DefaultTableModel 类的表,其 getValueAt 方法是通过记录存储的枚举实现的,我希望表的行根据行的索引着色:例如,当行index 是奇数,那么它的背景颜色应该是 white ,如果行索引是 pair ,那么它的背景颜色应该是 gray 。如何做到这一点?

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

真的非常感谢

4

2 回答 2

1

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

于 2011-05-26T12:01:34.363 回答
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 上发生这种情况,您应该在项目问题跟踪器中提交问题。

于 2011-05-25T03:48:37.637 回答