【问题标题】:Updating JList data更新 JList 数据
【发布时间】:2013-10-29 02:59:54
【问题描述】:

问候

我在更新 JList 时遇到问题,JList 中的数值是其他类的变量,我希望当我在其他类中更改这些变量的值并按下按钮时FrameTeste类中的“刷新” JList中的数据会根据我在其他类中所做的更改进行更新,我创建了一个具有不同值的两个不同类的变量和一个类即框架的示例,它具有一个 JList 和按钮“刷新”,

示例:

还有框架类:

当我更改属于OtherClass1和OtherClass2的变量的值并按下Frame类中的刷新按钮时,我想更新JList的值,我已经尝试了一切,但没有成功。谢谢各位。

【问题讨论】:

  • 您的帖子没有包含足够多的信息,无法让人们猜测您可能做错了什么,除了在您的变量应该是私有的时候声明您的变量是公开的。您将需要创建并发布sscce 以获得最佳的快速帮助。
  • 简单的选择是实例化一个新的 JList 并替换现有的。另一个选项是使用AbstractListModel#fireContentsChanged(),它允许您重复使用相同的列表。

标签: java variables frame jlist


【解决方案1】:

您需要为 JList 实现 ListModel。

 DefaultListModel listModel = new DefaultListModel();
 JList list = new JList( listModel );


// On Press on refresh button       
             if( Refresh Event is Triggered){
                List<String> freshData= getFreshData();

                // Remove all elemets of Jlist
                listModel.removeAllElements(); 

                    // Add new contents to list
                for(String data:freshData){
                    listModel.addElement(data);
                }

希望这能解决您的问题。

【讨论】:

  • 朋友,非常感谢你给我的例子,我很喜欢,谢谢,但我只有一个问题,我应该如何实现getFreshData()方法?我应该怎样声明这个方法?这个方法应该返回什么?这是你的例子中唯一我不明白的部分,我应该如何处理这个方法 getFreshData () '。你能给我一个关于这个方法的简单例子吗?他应该返回的内容如何执行,应该在哪里执行?我需要导入一些类,但我想知道什么是正确的,只是为了确保一切都正确。谢谢我的朋友!
  • 很遗憾,未能及早回复您。 getFreshData() 可以是任何方法,特别是在您的情况下,它可能是单击刷新按钮时调用的方法。这是从 db 获取更新内容的方法。
猜你喜欢
  • 1970-01-01
  • 2014-03-09
  • 2011-10-12
  • 2014-01-12
  • 2016-07-15
  • 2012-10-07
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多