当前位置: 首页 > 知识库问答 >
问题:

无法添加到JList

袁飞鹏
2023-03-14

我已经使用Netbeans GUI构建器创建了我的GUI。JList被添加到scrollpane中,如果我硬编码了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个答案

马泰
2023-03-14

>

  • Swing是单线程的,到可见GUI的所有输出都必须在EDT上完成

    你在摇摆中的一致性有问题

    SwingWorkers方法doInBackground()的输出未通知EventDispatchThread

    那么ListModel中的任何更改在Swing GUI中都不可见

  •  类似资料:
    • 问题内容: 我对编程非常陌生,无法添加到。没有错误,但未显示任何内容。 问题答案: 一个渲染器可以得出一个复选框,但不支持单元格编辑器。而是考虑一个单列。默认的渲染器和编辑器为类型的列是一个,对于实施例。

    • 我试图向mongodb发送一个数组,但是返回一个空的,而且mongodb文档中从来没有出现biddingGroup字段。我看过堆栈文章,并看到了关于模式的建议。我试过了 应用程序JS 感谢任何帮助。

    • 问题内容: 我正在尝试写一些东西,让某人可以将有声读物上课,并且应该将到期日定为14天。我的班级有一个toString()方法,该方法应打印出到期日,但无论如何始终打印出到期日是3/5。 问题答案: 没有按照你的意思去做。它的值是静态常量的值,我想是2(实际上,您可以在源代码中看到它)。 我想你是说 此外,您不应该拨打两次电话:如果您拨打两次电话,日期可能会不一致。调用一次,将其分配给一个字段:

    • 问题内容: 尝试从此处使用unstruction将alamofire添加到快速项目 完成所有这些步骤,清理项目很多计时器并重新启动XCode,没有任何帮助。错误不会消失 http://i.stack.imgur.com/kNU3R.png “无法为’Alamofire’加载基础模块”,无关紧要 我所做的更改: 1)将项目文件添加到我的项目 i.stack.imgur.com/eUe8E.png 2

    • 问题:我无法将单击按钮的值添加到ArrayList中。 示例:如果我单击名为E的按钮,那么我希望将E添加到arraylist中,之后如果我单击按钮S,那么它应该添加相同的arraylist。但这并不是在ArrayList中添加任何东西。它只显示当前单击的按钮

    • 我想为谷歌云功能启用cors。我的index.js是: 和我的package.json: 基于这个链接,我尝试手动添加头,但没有成功。我也试过这个解决方案,但没有成功。 我做错了什么?