Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaSwing中显示不断变化的列表_Java_Swing_User Interface - Fatal编程技术网

在JavaSwing中显示不断变化的列表

在JavaSwing中显示不断变化的列表,java,swing,user-interface,Java,Swing,User Interface,我正在使用JavaSwing(Eclipse)创建GUI,希望能够在面板中显示不断变化的列表。在我的代码中,这是一个对象的LinkedList,它将自动重新排序和更改,而无需任何用户交互。在GUI中显示此类列表的选项有哪些?感谢我个人使用的一个选项是,在包含此列表的对象上有一个方法,调用该方法时,会修改列表中的数据,然后调用updateUI(),这会导致UI在没有任何用户交互的情况下进行更新。为了检测此列表的数据何时更改(我假设您正在查看程序外部的内容),我将使用另一个线程进行轮询。当然,您在包

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

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


我希望这有助于……

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

  • 更新列表中的数据
  • 向UI线程发送更新UI的通知,下面是一个很好的教程

  • 当需要进行大量数据更新时,您需要将用户界面更新的数量限制在可接受的范围内(1/100 mills或smth),否则用户界面将受到影响Swing JList可以将3种类型的集合作为输入

  • 对象数组-
    public JList(Object[]listData)
  • 向量-
    公共JList(向量列表数据)
  • 列表模型-
    公共JList(列表模型模型)
  • 您必须将LinkedList转换为这3个集合之一

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