Java 当变量的值发生变化时,如何更新JTable和JTree?

Java 当变量的值发生变化时,如何更新JTable和JTree?,java,multithreading,swing,jtable,jtree,Java,Multithreading,Swing,Jtable,Jtree,我不熟悉Java Swing 我有这样一个HashMap:HashMapmap=newhashmap(); 字符串是一个名称,CustomObject有3个整数 我已经创建了一个JTable,其中有5列 slno整数 名称字符串 物理(自定义对象整数) 化学(自定义对象整数) 数学(自定义对象整数) 这些整数在运行时由各种线程更新 现在我有一个刷新按钮,单击该按钮可以清除JTable并填充最新的值 如何使这些不断变化的值更新JTable 我应该使用swing和awt的哪些功能来实现这一点? 我对

我不熟悉Java Swing

我有这样一个HashMap:HashMapmap=newhashmap(); 字符串是一个名称,CustomObject有3个整数

我已经创建了一个JTable,其中有5列

  • slno整数
  • 名称字符串
  • 物理(自定义对象整数)
  • 化学(自定义对象整数)
  • 数学(自定义对象整数)
  • 这些整数在运行时由各种线程更新

    现在我有一个刷新按钮,单击该按钮可以清除JTable并填充最新的值

    如何使这些不断变化的值更新JTable

    我应该使用swing和awt的哪些功能来实现这一点?
    我对JTree也有类似的问题。

    JTree和
    JTable的模型负责告诉视图它们应该更新

    你需要的是知道你的
    HashMap
    中的数据何时更新,并告诉模型如何更新自己

    像一个机器人之类的东西可以在这里工作


    如何更新模型将取决于您使用的模型的哪个实现,但由于您没有提供这些信息,因此建议如何进一步解决此问题并不容易

    “现在我有一个刷新按钮,单击该按钮可清除JTable并填充最新值”您可以使用基于Swing的
    计时器来检查映射,如果映射已更改(最好保留
    dataHasChanged
    属性),则更新表和树。@andreThompson这是解决方案之一。有没有办法不投票而是自动更新?“但自动更新”我想这就是MAdProgrammer的答案。我知道有一个很好的理由让我的评论成为..评论。在看到您(更多的“OO”)的答案后,您确认了我的怀疑,最好将其作为注释。我还没有为JTable编写任何自定义代码,在netbeans中,我使用拖放功能在单击刷新按钮时插入JTable。这段代码运行
    nameJTableModel=(DefaultTableModel)nameJTable.getModel(); namesJTableModel.setRowCount(0);对于循环{//populate jtable namesJTableModel.addRow(新对象[]{i,name,int1,int2,int3})
    DefaultTableModel
    有很好的
    addRow
    removeow
    方法…试试它们。只需确保您是在EDT的上下文中修改模型,否则它会在您的脸上爆炸。您想使用列表而不是哈希值,尤其是对于JTable@harvey123什么是EDT---搜索。。。。在车站附近有一个正在摇摆的地方