java - 如何动态创建多个VerticalFieldManager Blackberry

标签 java blackberry blackberry-jde

我一直在努力在 Blackberry 上动态创建多个 VerticalFieldManager。每个子管理器都会向用户显示不同的数据。每个子管理器在屏幕上都有不同的位置。所以我创建了一个具有“mainManager”的类和另一个创建“子管理器”的类,然后我调用 mainManager.add(new TheClassExtendingVerticalFieldManager);将 subManager 添加到 mainManager 中。问题是我只得到一个子管理器而不是三个。我正在使用填充来分隔管理器。这是我使用的代码。请指导我正确的方向,我们将不胜感激。

创建子管理器的类

public class ProgramListView extends VerticalFieldManager{

    private VerticalFieldManager subManager;
    private int _height;


    public ProgramListView(int height){
        this._height = height;

//      subManager = new VerticalFieldManager(
//              Manager.NO_HORIZONTAL_SCROLL | Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR | 
//              Manager.NO_HORIZONTAL_SCROLLBAR | Manager.USE_ALL_WIDTH)
//
//      {
//
//
//      };
    }

    public int get_height() {
        return _height;
    }

    public void set_height(int _height) {
        this._height = _height;
    }

    public void setCoordinates(int x, int y){
        setPosition(100,140);
    }
    protected void sublayout(int maxWidth, int maxHeight)
    {
        int displayWidth = Display.getWidth();
        int displayHeight = maxHeight;
        this.setPosition(300, 300);
        super.sublayout( 40, 40);
        setPadding(this.get_height(), 0, 0, 0);
        setExtent(displayWidth, this.get_height());

    }

    public void paint(Graphics graphics)
    {
        graphics.setBackgroundColor(Color.BLUE);//blue
        graphics.clear();
        super.paint(graphics);      
    }
    public int getPreferredWidth() {
        // TODO Auto-generated method stub
        return Display.getWidth();
    }

} 

ma​​inManager类

public class ProgramLayout extends MainScreen {

    private HorizontalFieldManager mainManager;
    private int deviceWidth = Display.getWidth();
    private int deviceHeight = Display.getHeight();
    private Vector subManagers;
    private int theheight;

    public ProgramLayout(){

        setToolbar();
        subManagers = new Vector();
        theheight = 100;
        mainManager = new HorizontalFieldManager(Manager.VERTICAL_SCROLL | Manager.USE_ALL_WIDTH | Manager.USE_ALL_HEIGHT)

        {

            protected void sublayout(int maxWidth, int maxHeight)
            {
                int displayWidth = deviceWidth;
                int displayHeight = deviceHeight;
                super.sublayout( displayWidth, displayHeight);
                setExtent(displayWidth, displayHeight);
            }

            public void paint(Graphics graphics)
            {
                graphics.setBackgroundColor(Color.BLACK);
                graphics.clear();
                super.paint(graphics);
            }

            public int getPreferredWidth() {
                // TODO Auto-generated method stub
                return Display.getWidth();
            }

        };
        for (int i = 0; i < 3; i++) {
            theheight = theheight+100;
            subManagers.addElement(new ProgramListView(theheight));
        }

        for (int i = 0; i < subManagers.size(); i++) {

            mainManager.add((VerticalFieldManager)subManagers.elementAt(i));
        }


        this.add(mainManager);

    }

提前致谢

最佳答案

试试这个:

    for (int i = 0; i < 3; i++) {
        theheight = theheight+100;
         mainManager.add(new ProgramListView(theheight));
    }
    this.add(mainManager);

关于java - 如何动态创建多个VerticalFieldManager Blackberry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471403/

相关文章:

java - 通过gradle配置JOOQ Codegen时找不到H2驱动程序

iphone - 寻找图标、艺术品等的良好来源

blackberry - 是否可以在 blackberry OS 6,7 和 7.1 中运行 blackberry OS 10

在模拟器上加载黑莓应用程序

java - Java 或 C 数组中的乘法逆表 GF(2^4)

Java 多线程 - 将线程分配给处理器内核

java - 使用 Hibernate 获取 GROUP_CONCAT 逗号分隔值

java - 您如何在 Blackberry Java 应用程序中遍历和存储 XML?

pdf - 我可以使用java在黑莓上打开 ".pdf"文档吗?

blackberry - 如何在 RIM Blackberry 的 BrowserField 中显示 HTML 图像标签