2011-09-16 5 views
0

표준이 com.sun.lwuit.list입니다. 나는 getSelectedItem 또는 getSelectedIndex 메서드를 사용하여 선택한 항목을 가져올 수 있습니다. 상품은 사진과 2 개의 라벨입니다. 그림이나 라벨 중 하나를 클릭했는지 어떻게 알 수 있습니까? 자식 이벤트에 click 이벤트를 전달하는 것이 가능하거나 현재 마우스 좌표로 구성 요소를 찾는 방법이있을 수 있음을 인정합니다.LWUIT 항목에 대한 질문

public class NewsFeedListRender extends Container implements ListCellRenderer 
{ 
    private final Container newsFeedCont = new Container(); 
    private final Container pictureCont = new Container(); 
    private final Label name = new Label(); 
    private final Label message = new Label(); 
    private final Label picture = new Label(); 
    private final Label data = new Label(); 
      .... 

    public NewsFeedListRender() 
    { 
     setLayout(new BorderLayout()); 
     newsFeedCont.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 
     pictureCont.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 

     Style s = name.getStyle(); 
     s.setFont(font_large);   

     s = message.getStyle(); 
     s.setFont(font_small); 

     s = data.getStyle(); 
     s.setFont(font_mini); 
       ..... 
      } 

    } 

    public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) 
    {  
     if (value instanceof MessageItem) 
     {   
      MessageItem newsFeedData = (MessageItem) value; 
      if (newsFeedData.getSender() != null) 
      { 
       if (newsFeedData.getSender().getName() != null) 
        name.setText(newsFeedData.getSender().getName()); //fixthis 
      } 
      else 
      { 
       name.setText("Unknown sender"); 
      } 
      if(newsFeedData.getMessage() != null) 
       message.setText(newsFeedData.getMessage()); 
      else 
      { 
       message.setText("Default message"); 
      } 

      try 
      { 
       data.setText(newsFeedData.getDataReceive().toString()); 
      } 
      catch (Exception e) 
      { 
       System.out.println(e.toString()); 
      }        
      Image img = null; 
      img = newsFeedData.getSender().getIcon(); 
      if(img != null) 
      { 
       picture.setIcon(img); 
      } 
         ....... 

답변

2

getSelectedItem()Container 객체를 반환 당신은 Container 객체의 값을 계산 할 수 있습니다. 그런 다음이 컨테이너에 추가 된 구성 요소를 가져와야합니다. 샘플 코드,

Container con = (Container) list.getSelectedItem(); 
for(int i = 0; i < con.getComponentCount(); i++){ 
Object obj = (Object) con.getComponentAt(i); // typecast component name instead object 
} 
+0

항목에 어떤 구성 요소가 포함되어 있는지 이미 알고 있습니다. 그림이나 라벨 중 하나를 클릭했는지 어떻게 알 수 있습니까? –

+0

AFAIK list에 listener를 추가합니다. 따라서 목록 항목에서 클릭 한 구성 요소를 찾을 수 없습니다. – bharath