2011-09-16 11 views
0

私には標準com.sun.lwuit.listがあります。選択されたアイテムは、getSelectedItemまたはgetSelectedIndexというメソッドを使用して取得できます。アイテムは写真と2つのラベルです。画像やラベルの1つをクリックしたかどうかを知るにはどうすればいいですか?私は、子コンポーネントに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

私は既にどのコンポーネントがアイテムに含まれているかを知っています。画像をクリックしたか、ラベルの1つをクリックしたかどうかを確認したいのですが? –

+0

AFAIK listのリスナーを追加します。したがって、リスト項目でクリックされたコンポーネントを見つけることはできません。 – bharath

関連する問題