如何在lwuit中设置特定列表项的样式?

时间:2013-01-17 10:51:12

标签: java-me lwuit lwuit-form lwuit-list

我需要一个要求,在列表中,某些列表项应该表现出与其他项不同的样式。如何在lwuit中实现这一目标?

例如,

        List menu = new List();
        menu.addItem("1. Green");
        menu.addItem("2. Red");
        menu.addItem("3. Blue");

在此列表中每个项目应具有表示其颜色的样式(即)绿色应具有绿色背景,红色应具有红色背景。 LWUIT有可能吗?我们怎样才能做到这一点?

先谢谢。

2 个答案:

答案 0 :(得分:2)

您必须为此用例创建一个单元格渲染器。只需派生'DefaultListCellRenderer',例如:

DefaultListCellRenderer rend = new DefaultListCellRenderer() {
     public Component getCellRendererComponent(Component list, Object model, Object value, int index, boolean isSelected) {
           Component c = super.getCellRendererComponent(...);
           c.getStyle().setBgTransparency(255);
           c.getStyle().setBgColor(theColorYouWant);
           return c;
     }
};

然后将此渲染器设置为列表。您可能需要在此处进行一些额外的改进,因为这是渲染器的简化示例。

答案 1 :(得分:1)

这是一种做法。 1.为列表中的每个项目创建一个组件 2.将bg颜色和文本添加到其中。 3.完成后,将其添加到您创建的表单或任何其他custon组件中。

其他方式: 您可以创建自己的列表渲染器。 Here是关于如何做到这一点的一些信息