【问题标题】:Create a JTable using an ArrayList of "n" AbstractDrawablePoints使用包含“n”个 AbstractDrawablePoints 的 ArrayList 创建 JTable
【发布时间】:2023-01-04 11:36:26
【问题描述】:

我有一个 ArrayList<AbstractDrawablePoint> nodePoints,它动态变化/其中可以有 1 到 n 个点。

我想根据 nodePoints 中的点数动态填充 JTable。目前,我可以硬编码 Object [][] 来执行以下操作:

    String[] columnNames = {"u", "v"};
    Object[][] nodeData = new Object[][] {
         {nodePoints.get(0).getU(), nodePoints.get(0).getV() },
         {nodePoints.get(1).getU(), nodePoints.get(1).getV() }
    };
    
    JTable table = new JTable(nodeData, columnNames);   

但是,我想动态地填充nodeData,而不是像我那样硬编码。

【问题讨论】:

  • 没问题。将 DefaultTableModel 与零行和列名一起使用 ctor。然后你可以拨打dtm.addRow()
  • 我更喜欢自定义 TableModel,但 g00se 的评论也可以很好地工作
  • 当 addRow 的参数是奇异向量时,如何调用 dtm.addRow()?
  • 如果你能告诉我我遗漏了什么,我在编辑部分添加了我的尝试?
  • 您还可以使用 Vector of Vectors 创建 DefaultTableModel。无论如何,该模型实际上会将您的 2D 数组转换为 Vector of Vectors。

标签: java swing dictionary object jtable


【解决方案1】:

根据@g00se 的回答,我得出以下结论:

String[] columnNames = {"u", "v"};

DefaultTableModel tableModel = new DefaultTableModel(columnNames,0);

for (AbstractDrawablePoint node: nodePoints) {
    Object [] currentNode = {node.getU(),node.getV()};          
    tableModel.addRow(currentNode);
}


JTable table = new JTable(tableModel);

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 2013-04-04
    • 2017-07-24
    • 1970-01-01
    • 2021-11-01
    • 2013-09-26
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    相关资源
    最近更新 更多