我正在制作一个具有人的列表,每个人都评分为单元背景该列表使每个单元都具有相同的速率背景我正在使用诺基亚S40全触摸模拟器这是我用于单元格渲染器
的代码 list.setRenderer(new ListCellRenderer() {
public Component getListFocusComponent(List list) {
// TODO Auto-generated method stub
return null;
}
public Component getListCellRendererComponent(List list,
Object value, int index, boolean isSelected) {
String rate = "";
rate = Transportation.getDriverRate(value.toString(),
CityListForm.selectedCity);
rate = (Integer.parseInt(rate)) > 25 ? "" + 5 : ""
+ Integer.parseInt(rate) / 5;
rate = "/" + rate + ".png";
Image image = null;
Label label = null;
try {
image = (Image.createImage(rate));
System.out.println(rate);
} catch (IOException e) {
e.printStackTrace();
}
label = new Label();
label.getStyle().setBgImage(image);
label.setText(value.toString());
label.getStyle().setAlignment(RIGHT);
label.setTextPosition(RIGHT);
Style style = label.getStyle();
style.setBgColor(16777215);
style.setFgColor(0);
label.setPreferredH(42);
return label;
}
});
使用List.setMutableRendererBackgrounds(true);
thnx的答案我通过制作一个容器并在其中包裹两个标签来解决它,一个用于该值,另一个用于速率图标,并给容器一个布局,然后返回getListCellRendererComponent()方法中的容器