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