繁体   English   中英

在Java Swing中显示连续变化的列表

[英]Display a Continuously Changing List in Java Swing

我正在使用Java Swing(Eclipse)创建GUI,并希望能够在面板中显示不断变化的列表。 在我的代码中,这是对象的LinkedList,它将自动重新排序和更改,而无需用户交互。 在GUI中显示此类列表有哪些选项? 谢谢

Swing JList可以接受3种类型的集合作为输入。

  1. 一个对象数组- public JList(Object[] listData)
  2. 一个Vector- public JList(Vector listData)
  3. A ListModel- public JList(ListModel model)

您将必须将LinkedList转换为这3个集合之一。

我的建议是ListModel。 您可以使用DefaultListModel,扩展AbstractListModel或使用ListModel接口编写自己的类。

我个人使用的一个选项是在包含此列表的对象上有一个方法,该方法在被调用时会修改列表中的数据,然后调用updateUI() ,这将导致UI进行更新而无需任何用户交互。 为了检测此列表的数据何时发生更改(我假设您正在查看程序外部的内容),我将使用另一个线程进行轮询。 当然,必须对包含列表的对象具有的方法进行synchronized

我希望这有帮助...

在设计UI时,这是一项非常流行的任务。 要实现目标,您需要遵循以下原则

  1. 更新列表中的数据
  2. 将通知发送到UI线程以获取更新UI,这是良好教程的链接

当需要进行大量数据更新时,您需要将用户界面更新的数量限制在可接受的范围内(每100毫秒或1毫米) ,否则UI会遭受损失

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM