Java me 来自Rss的LWUIT表单标题
我使用了ListCellRenderer(我引用了此链接),但问题是,图像和标题应该在我的表单屏幕上以单行并排显示,但对于Rss中的某些标题,我无法并排显示,我能够在一行显示图像,标题将在第二行? 这是我的代码:Java me 来自Rss的LWUIT表单标题,java-me,rss,lwuit,Java Me,Rss,Lwuit,我使用了ListCellRenderer(我引用了此链接),但问题是,图像和标题应该在我的表单屏幕上以单行并排显示,但对于Rss中的某些标题,我无法并排显示,我能够在一行显示图像,标题将在第二行? 这是我的代码: public class NewsListCellRenderer extends Container implements ListCellRenderer { private Label name = new Label(""); private Label ico
public class NewsListCellRenderer extends Container implements ListCellRenderer {
private Label name = new Label("");
private Label icon = new Label("");
private Label focus = new Label("");
public NewsListCellRenderer() {
setLayout(new BorderLayout());
Container cnt = new Container();
name.getStyle().setBgTransparency(0);
name.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));
cnt.addComponent(icon);
cnt.addComponent(name);
addComponent(BorderLayout.CENTER, cnt);
focus.getStyle().setBgTransparency(100);
focus.getStyle().setBgColor(0xFFFFFF);
}
public Component getListCellRendererComponent(List list, Object value, int i, boolean bln) {
News news = (News) value;
name.setText(news.getTitle().trim());
icon.setIcon(news.geImage());
this.getStyle().setBorder(Border.createLineBorder(1, 0x666666));
return this;
}
您遇到的问题是,您将名称和图标标签都放置在容器中。您没有设置容器的布局。您不必使用容器,但如果必须设置其布局。将图像放在BorderLayout的西部或东部,然后将容器放在中间
setLayout(new BorderLayout());
Container cnt = new Container();
cnt.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
name.getStyle().setBgTransparency(0);
name.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));
cnt.addComponent(name);
addComponent(BorderLayout.WEST, icon);
addComponent(BorderLayout.CENTER, cnt);