2012-08-28 1 views
1

제목 및 이미지가 Rss 파일에서 내 LWUIT 양식 화면에 표시됩니다.이 때문에 ListCellRenderer를 사용했는데 (이 링크 http://lwuit.blogspot.in/2008/07/lwuit-list-renderer-by-chen-fishbein.html으로 알려짐) 문제는 이미지와 제목입니다. 내 양식 화면에 한 줄에 나란히 표시해야하지만 Rss의 일부 제목에 대해서는 나란히 표시 할 수 없으며 한 줄에 이미지를 표시 할 수 있고 두 번째 줄에 제목이 표시됩니까? 여기 내 코드 :LWUIT Form Titles from Rss

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; 
    } 

답변

2

당신이 가진 문제는 당신이 컨테이너 내부의 이름과 아이콘 레이블을 모두 배치한다는 것입니다. 컨테이너의 레이아웃을 설정하지 않았습니다. 컨테이너를 사용해야 할 필요는 없지만 레이아웃을 설정해야하는 경우. 이미지를 BorderLayout의 WEST 또는 EAST에 놓고 컨테이너를 가운데에 놓습니다.

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);