【问题标题】:JTable: getting values from model as opposed to table [closed]JTable:从模型而不是表中获取值[关闭]
【发布时间】:2019-12-24 11:09:22
【问题描述】:
DefaultTableModel model2 = (DefaultTableModel) mytable.getModel();

这两者有什么区别?

model2.getValueAt(row,column);
mytable.getValueAt(row,column);

【问题讨论】:

  • 您可能会注意到这个问题已被 3 次否决。我最好的猜测是人们觉得你没有做足够的研究。您是否检查了该方法的每个类版本的 JavaDocs?您是否完成了How to Use Tables 上的教程?
  • 在大多数情况下没有区别。但是,如果表被过滤或排序,则存在差异。或者,如果用户对列重新排序,则存在差异。

标签: java swing jtable tablemodel


【解决方案1】:

来自JavaDoc - 如果您使用JTable.getValueAt(int, int),您将获得表格可见列顺序中的列。如果用户对列重新排序,则视图和模型可能不同步。

"注意:该列是在表格视图的显示顺序中指定的,而不是在 TableModel 的列顺序中。这是一个重要的区别,因为当用户重新排列表格中的列时,给定索引处的列视图中的内容会发生变化。同时用户的操作永远不会影响模型的列顺序。”

【讨论】:

    【解决方案2】:

    model.getValueAt(row, column)

    for (int count = 0; count < model.getRowCount() ; count++)
    {
      System.out.println( model.getValueAt(count, 0).toString());
    }
    

    【讨论】:

    • 这似乎根本没有解决 OP 的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2012-06-10
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多