在垂直字段管理器中添加水平字段管理器时的illegalStateException

时间:2011-09-20 10:46:59

标签: blackberry-eclipse-plugin horizontalfieldmanager

我有一个查询。我正在垂直字段管理器中创建3个水平管理器。 在编译我的代码时,我收到IllegalStatException.i正在这样做。

VerticalFieldmanager vfm = new VerticalFieldManager();
  HorizontalFieldManager hfm1 = new HorizontalFieldManager();
  {somecode}
  HorizontalFieldManager hfm1 = new HorizontalFieldManager();
  {somecode}   
 HorizontalFieldManager hfm1 = new HorizontalFieldManager();
  {somecode}

然后我将hfm添加到vfm

 vfm.add(hfm1);
 vfm.add(hfm1);
 vfm.add(hfm1);
  add(vfm);    

我做了这个,但得到了一个例外。任何人都告诉我解决方案..

3 个答案:

答案 0 :(得分:1)

您无法一遍又一遍地向管理员添加相同的字段/经理。

你可以使用一段时间或一段时间做一些事情并在里面创建一个新对象并将其添加到父管理器

答案 1 :(得分:0)

您正在创建三个名称相同的Horizo​​ntalFieldManagers!不要那样做 - 试试:

enter code here
VerticalFieldmanager vfm = new VerticalFieldManager();
HorizontalFieldManager hfm1 = new HorizontalFieldManager();
{somecode}
hfm1 = new HorizontalFieldManager();
{somecode}   
hfm1 = new HorizontalFieldManager();
{somecode}

OR

enter code here
VerticalFieldmanager vfm = new VerticalFieldManager();
for(int i=0;i<3;i++)
{
 HorizontalFieldManager hfm1 = new HorizontalFieldManager();
 {somecode}
}

答案 2 :(得分:0)

问题是你要一次又一次地创建相同的对象hfm3 3次 您可以创建3个不同的对象,如hfm1,hfm2和hfm3 喜欢

 VerticalFieldmanager vfm = new VerticalFieldManager();
    HorizontalFieldManager hfm1 = new HorizontalFieldManager();
    {somecode}
    HorizontalFieldManager hfm2 = new HorizontalFieldManager();
    {somecode}   
    HorizontalFieldManager hfm3 = new HorizontalFieldManager();
    vfm.add(hfm1);
    vfm.add(hfm2);
    vfm.add(hfm3);
     add(vfm)

VerticalFieldmanager vfm = new VerticalFieldManager();
HorizontalFieldManager hfm1 = new HorizontalFieldManager();
{somecode}
hfm1 = new HorizontalFieldManager();
{somecode}   
hfm1 = new HorizontalFieldManager();
{somecode}

但是由于运行时多态性,只添加了最后一个hfm1 ...第一个hfm1的对象在第二个hfm1初始化时释放内存,第三个hfm1释放第二个hfm1的对象内存

因此只有最后一个hfm1被添加到vfm中 在这种情况下......更好地遵循第一种方法。