Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java me 运动项目问题_Java Me_Lwuit - Fatal编程技术网

Java me 运动项目问题

Java me 运动项目问题,java-me,lwuit,Java Me,Lwuit,我有一个标准的com.sun.lwuit.list。我可以使用方法getSelectedItem或getSelectedIndex获取所选项目。该项目是一张图片和两个标签。我怎么知道我是点击了图片还是其中一个标签。我承认可以将单击事件传递给子组件,或者可能存在一种通过当前鼠标坐标查找组件的方法 public class NewsFeedListRender extends Container implements ListCellRenderer { private final Con

我有一个标准的
com.sun.lwuit.list
。我可以使用方法
getSelectedItem
getSelectedIndex
获取所选项目。该项目是一张图片和两个标签。我怎么知道我是点击了图片还是其中一个标签。我承认可以将单击事件传递给子组件,或者可能存在一种通过当前鼠标坐标查找组件的方法

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);
            }
                        .......
getSelectedItem()
返回
容器
对象,您可以计算
容器
对象的值。然后,您需要获取添加到此容器中的组件是什么。参见示例代码

Container con = (Container) list.getSelectedItem();
for(int i = 0; i < con.getComponentCount(); i++){
Object obj = (Object) con.getComponentAt(i); // typecast component name instead object
}
Container con=(Container)list.getSelectedItem();
对于(int i=0;i
我已经知道项目中包含哪些组件。我想知道我是点击图片还是其中一个标签有多确定?好的,请添加列表的侦听器。因此,在列表项中找不到单击的组件。