用对象数组初始化表



我有一个问题,从一个带有BD或数组的FOR初始化JTable。

我的问题是例子tableFilterDemo.java,我需要这个功能,但是当我想要加载我的BD或数组列表的数据时,我遇到了问题。

我需要用FOR加载对象数组来获取文件的所有行或表的所有行

private Object[][] data = {
    { "Mary", "Campione", "Snowboarding"},
    { "John", "guifru", "skyiin"},};

你总是可以使用DefaultTableModel,它使用Vector of Vectors来保存TableModel中的数据。因此,您可以为表中的每一行创建一个Vector,并将每一列添加到Vector中。然后将行向量添加到第二个向量。这样就不需要预先硬编码数组的大小。表从数据库显示如何使用这种方法。

如果你想显示存储在ArrayList中的自定义对象,你也可以使用自定义TableModel。行表模型为在ArrayList中存储对象提供了一些通用的支持。您还需要查看BeanTableModel以获得完整的实现和如何执行自定义实现的进一步示例。

有两种方法:

  • 您通过调用正确的构造函数(这是JTable(Object[][] rowData, Object[] columnNames))将对象直接设置为JTable,这是非常简单和良好的,但只是管理静态表
  • 你使用一个模型,就像你正在谈论的例子一样:你使用一个扩展AbstractTableModel的类,在这个类中你覆盖正确的方法来映射二维集合到正确的行为。

我不确定是否理解了你的问题。无论如何,如果你的表有3列并且你已经定义了表模型就像这里定义的那样,你需要迭代你的数组并以这种方式将值放入表中:

for(int i=0; i < data.length; i++){
  for(int j=0; j < data[i].length; j++){
    table.setValueAt(data[i][j], i, j);
  }
}

这是方法的声明:setValueAt(对象值,整行,整列)

如果你想把数组列表转换成数组,你可以:

ArrayList<String> arrayList;
String[] data = new String[arrayList.size()];
data = arrayList.toArray(data);

再见卢卡

相关内容

  • 没有找到相关文章