LWUIT列表项中的自定义可扩展组件

时间:2014-01-15 12:45:12

标签: java-me lwuit lwuit-list

在我的项目中,我使用lwuit List(main)和自定义渲染器。

我遵循实现可扩展列表项的目的,扩展/折叠另一个List(包装)。

最初,我创建了带按钮和列表的容器(没有折叠/展开行为),但是当我在列表中使用它时,我遇到了无法在中选择项目的问题包裹列表。

所以,如果你帮我解决两个问题,我会很高兴的:

  1. 我可以使用标准lwuit工具修复它吗?
  2. 如何通过单击HeaderBar隐藏包装的列表(可见性只是隐藏内容,但留下了很大的差距)?
  3. 图像清晰(ListItem - 列表项目,不显示在图像上):

    expand view

    collapsed view

    private void fillForm() {
        mF = new Form();
        fillList1();
        fillList2();
        fillList();
        mF.show();
    }
    
    private void fillList() {
        mList = new CList();
        mList.setRenderer(new CRenderer());     
        mList.addItem(c1);
        mList.addItem(c2);
        mF.addComponent(c1);
        mF.addComponent(c2);
    }
    
    private void fillList1() {   
        c1 = new Container();
        b1 = new Button();      
        b1.getUnselectedStyle().setBorder(Border.createLineBorder(2, 0x000000));
        b1.addActionListener(this);
        mList1 = new List();
        mList1.setName("l1");
        mList1.setRenderer(new DefaultListCellRenderer());
        mList1.addItem("one");
        mList1.addItem("two"); 
        mList1.addItem("three");         
        mList1.addItem("four");
        mList1.addItem("five");  
        c1.addComponent(b1);
        c1.addComponent(mList1);
    }    
    
    private void fillList2() {
        c2 = new Container();
        b2 = new Button();
        b2.getUnselectedStyle().setBorder(Border.createLineBorder(2, 0x000000));             
        b2.addActionListener(this);        
        mList2 = new List();
        mList2.setName("l2");
        mList2.setRenderer(new DefaultListCellRenderer());
        mList2.addItem("путин");
        mList2.addItem("ест"); 
        mList2.addItem("детей");         
        mList2.addItem("больше чем");
        mList2.addItem("любит родину");    
        c2.addComponent(b2);
        c2.addComponent(mList2);
    }    
    
    private class CRenderer extends DefaultListCellRenderer {
        public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {
            return (Container)value; //To change body of generated methods, choose Tools | Templates.
        }
    }
    

1 个答案:

答案 0 :(得分:0)

此组件可以解决您的问题吗?

PopupChoiceGroup