当前位置: 首页 > 面试题库 >

在Swing Java中将元素添加到JList

董同
2023-03-14
问题内容

我有一个单击按钮时执行的功能。假设有一个循环将1到10加到JList。我将该数据添加到中DefaultListModel。它完美地工作,并且数字相加。然后我Thread.sleep(1000)在循环中添加了一个。但是输出是不同的。我想每秒增加1个元素。但是现在它等待10秒,并在第10秒结束时将所有1到10加在一起。我在哪里错了?

List processList = listNumbers.getSelectedValuesList();
DefaultListModel resultList = new DefaultListModel();
listResult.setModel(resultList);

for (int i = 0; i < processList.size(); i++) {
    resultList.addElement(String.valueOf(i));
    try {
        Thread.sleep(1000);
    }
    catch (InterruptedException ex) {
    }
}

问题答案:

您应该在单独的线程中更新列表,否则最终将阻塞事件分发线程。

请尝试以下操作:

final DefaultListModel model = new DefaultListModel();
final JList list = new JList(model);

//another thread to update the model
final Thread updater = new Thread() {
    /* (non-Javadoc)
     * @see java.lang.Thread#run()
     */
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            model.addElement(i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
};
updater.start();


 类似资料:
  • 问题内容: 我正在尝试将元素添加到python中的json文件中,但我无法做到这一点。 这是我直到现在尝试的内容(删除了一些变化): 但是,我得到的是: 很好,因为我还需要添加一个新行而不是一个元素,但是我想得到这样的东西: 我应该如何添加新元素? 问题答案: 你可以这样做。

  • 问题内容: 想要向现有数组添加或追加元素 现在我想用我发送的新值动态更新系列。 就像我发送3个更新系列 再次,如果我发送4更新系列作为 再次,如果我发送1个更新系列,依此类推 怎么做???? 我在其他函数中每5分钟生成一个整数,并希望发送以更新数组。 问题答案: 数组的长度在Java中是不可变的。这意味着一旦创建数组便无法更改其大小。如果使用2个元素初始化它,则其长度为2。但是,您可以使用其他集合

  • 问题内容: 我已经有了一个状态: 现在,我想用新信息对其进行更新。因此,向其添加另一个div。 像这样: 我该怎么做?或者我需要从零开始设置新状态 问题答案: 我认为以组件状态存储jsx组件不是一个好主意。我认为您应该仅以呈现组件所需的状态保存数据。 如果您真的想在状态中存储jsx,为什么不将“对话”属性定义为数组?然后,您可以向其中添加新组件。 但是最好只存储数据,例如“ first”和“ ne

  • 问题内容: 在可选数组的末尾附加元素的正确方法是什么?假设我有一个可选数组myArray,我想在末尾附加“ 99”。Append()在nil数组上不起作用,因此我可以找到的唯一解决方案是以下方法,但是它看起来并不十分优雅: 问题答案: 您可以使用的事实,通过可选的链接调用的方法总是返回一个可选的值,即如果它是 不可能的 调用方法: 如果则则追加新元素并返回,以便不执行if块。 如果则不执行任何操作

  • 添加画笔动态 “画笔”面板提供了许多用于向预设画笔笔尖添加动态(或变化)元素的选项。例如,可以设置在描边路线中改变画笔笔迹的大小、颜色和不透明度的选项。 将动态元素添加到画笔时使用两个组件: 抖动百分比指定动态元素的随机性。如果是 0%,则元素在描边路线中不改变;如果是 100%,则元素具有最大数量的随机性。 “控制”弹出式菜单中的选项指定如何控制动态元素的变化。可以选择不控制元素的变化,按指定数

  • 我正在学习HeadFirst Android开发的教程,在添加了以下内容后遇到了一些问题:private ActionBarDrawerToggle drawertoggle; 错误:任务“:app:ProcessDebugManifest”执行失败。 清单合并失败:来自[com.android.support:RecyclerView-V7:25.3.1]androidManifest.xml: