无法将addElement添加到JList

时间:2012-10-05 10:42:11

标签: java swing concurrency jlist event-dispatch-thread

我知道这不是关于填充JLists的唯一问题,但我没有在另一个SO线程中找到答案。

我使用Netbeans GUI构建器来创建我的GUI。 JList被添加到滚动窗格中,如果我硬编码JList的内容,一切都显示正常。

jList1.setModel(new javax.swing.AbstractListModel() { 
public String[] strings = {"1", "2", "etc..."}; 
@Override 
  public int getSize() { 
  return strings.length; 
} 

@Override 
   public Object getElementAt(int i) { 
   return strings[i]; 
} 
}); 

但如果我尝试通过SwingWorker动态添加项目,则不会显示任何内容。

JList jList1 = new javax.swing.JList();
DefaultListModel info = new DefaultListModel();
....
jList1.setModel(info);

....
public void FillList(final String subject) {

    worker = new SwingWorker() {
        @Override
        protected Object doInBackground() {
            info.addElement(subject);

            return 0;
        }

        @Override
        protected void done() {
        }
    };
    worker.execute();
}

我只想在JList中显示主题以用于视觉目的,其余部分在后台完成。

感谢任何帮助,

谢谢!

1 个答案:

答案 0 :(得分:3)