Java me 在lwuit中使用listrenderer和复选框

Java me 在lwuit中使用listrenderer和复选框,java-me,lwuit,Java Me,Lwuit,我已经为lwuit创建了以下自定义列表渲染器。渲染器扩展了复选框,但由于某些原因,选择和取消选择(选中/取消选中)功能不起作用。 如果isetselected()所有项目都被选中,并且不能取消选中。 这是示例代码 class TaskListRenderer extends CheckBox implements ListCellRenderer { public TaskListRenderer() { super(); }

我已经为lwuit创建了以下自定义列表渲染器。渲染器扩展了复选框,但由于某些原因,选择和取消选择(选中/取消选中)功能不起作用。 如果i
setselected()
所有项目都被选中,并且不能取消选中。 这是示例代码

class TaskListRenderer extends CheckBox implements ListCellRenderer {

        public TaskListRenderer() {
            super();
        }

        public Component getListCellRendererComponent(List list, Object o, int i, boolean bln) {

            Tasks task = (Tasks) o;
            try {
                img = Image.createImage("/three.png");
            } catch (IOException ex) {
                ex.printStackTrace();
            }
//            
            setIcon(img);
            setText(task.getPhoneID() + " " + task.getDate());

            Style style = new Style();//(0xff0000, 0x00ff00, null, byte(128));
            style.setBgColor(0xff0000);
            style.setFgColor(0x00ff00);
            setSelectedStyle(style);
            return this;
        }

        public Component getListFocusComponent(List list) {
            return this;
//            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

您好,您缺少的代码行是

Tasks task = (Tasks) o;
setSelected(task.isSelect());
希望这能有所帮助

另一方面,我强烈建议您将下面的代码移到GetListCellRenderComponent的外侧,因为它在显示列表时会被多次调用,并且会降低应用程序的性能

img = Image.createImage("/three.png");

谢谢,我试过了,效果很好。它对我的Tasks类进行了一些小的修改。