定义了一个容器(一个像list的容器),初始的时候是先将容器添加到了面板上,然后将数据加进面板,另外还用了一种方法是先将数据加进容器中,然后一次性将容器加到面板上。这两种方法使用的时间差不多。我尝试过分开加数据的方法,但是当数据集定义为全局变量时,后面加入的数据会覆盖掉前面的数据,如果使用局部变量,在初始化时会新增一个面板,即后面加的数据被添加到了另外的面板上面。
求高手帮助如何提升这个容器添加的性能。
可不可以用多线程,使用多线程会不会出现后面数据覆盖掉前面的数据。
求高手帮助如何提升这个容器添加的性能。
可不可以用多线程,使用多线程会不会出现后面数据覆盖掉前面的数据。
else if (m_groupList.nodesSize() > 1) {
if (!m_prepared) {
add(m_split = new GuiSplit(lz, m_groupList, m_edit, m_splitPercent, true));
}
m_groupList.setSelected(m_groupList.getNode(0));
}else {
loadEditList(m_groupList.getNode(0).obj);
add(m_edit);
}
m_groupList.setImage( 1, "mandatorygroup","c_CD_Mandatory Group");
m_edit.invalidate();
m_prepared = true;这里的m_edit就是我所定义的数据源,add调用的是Container中的add(Component comp)方法。这里是一次性加的数据,如果是换成多次加的话就是在往数据源m_edit中添加行完成的时候就执行一次add(m_edit),但是显示的结果只有最后一次添加的数据。
if (comp.parent != null) {
comp.parent.remove(comp);
if (index > ncomponents) {
throw new IllegalArgumentException("illegal component position");
}
}
它执行后就会remove掉前面添加容器数据。这也是后面添加的覆盖掉前面添加的数据的源头。请问使用多线程会不会也出现被remove的情况啊。
如果是一个JTextArea,应该用append的。
另外我已经发现了多次添加是错误的,因为只要实行过一次add(m_edit),就会把这个容器添加到面板上面,后面往容器中加行的时候就是直接加到面板上面去了,所以多次添加实则是无意义的。现在我想知道的是可不可以用多线程来提升数据加载的速度。