gpt4 book ai didi

java - 如何在java中显示jList上的项目?

转载 作者:行者123 更新时间:2023-12-01 17:40:21 28 4
gpt4 key购买 nike

我制作了一个java GUI程序,并在该GUI上添加了一个jList,以便通过调用添加项目来打印该jList上的程序输出

listBox.addElement(""); // where listBox is an instance of jList

但问题是添加时项目没有显示。它们会在程序即将结束时显示。

意味着,我通过单击“开始”按钮启动程序,然后完成整个处理,包括将项目添加到“listBox”,但当程序返回到“时,这些项目显示在 jList 上” “开始”按钮的 ActionListener 的“actionPerformed()”方法。

如何才能在项目添加到列表时立即显示项目。

上面的应用程序是多线程的。主线程启动GUI,然后启动10个线程,并将jList的“listModel”(DefaultListModel的实例)传递给所有线程,以便每个线程都可以通过调用“addElement(”“)”方法将项目添加到列表中“列表模型”

实际上,listModel是DefaultListModel类的子类(DefaultListModelSubClass)的实例。我重写了 addElement() 方法以使其“同步”,以便一次只有一个线程可以向其中添加一项。

最佳答案

您可能正在尝试在事件调度线程(处理 GUI 更新的线程)中进行处理。您的处理会锁定 GUI 使其无法更新,然后当处理完成时,会传播正确的 GUI 更改。要使其正常工作,您需要在单独的线程中执行处理,并根据需要与 EVT 进行通信。 SwingWorker如果您有可用的 Java 6,这将是实现此目的的最佳方法。

关于java - 如何在java中显示jList上的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615791/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com