从使用BD或数组的FOR初始化JTable时遇到问题。
我的问题是示例tableFilterDemo.java,我需要这个函数, 但是当我想要我的BD或arraylist的加载数据时,我遇到了问题。
我需要使用FOR获取所有文件行或表
行来加载对象数组private Object[][] data = {
{ "Mary", "Campione", "Snowboarding"},
{ "John", "guifru", "skyiin"},};
答案 0 :(得分:4)
您始终可以使用DefaultTableModel,它使用Vector of Vector来保存TableModel中的数据。因此,对于表中的每一行,您都可以创建一个Vector并将每列添加到Vecter。然后将行Vector添加到第二个Vector。这样您就不需要事先对数组的大小进行硬编码。 Table From Database显示了如何使用此方法。
如果要显示存储在ArrayList中的自定义Oject,也可以始终使用自定义TableModel。 Row Table Model为在ArrayList中存储对象提供了一些常规支持。您还需要查看BeanTableModel
以获取完整实现,并进一步了解如何执行自定义实现。
答案 1 :(得分:2)
您有两种方式:
JTable
)将对象直接设置为JTable(Object[][] rowData, Object[] columnNames)
,这非常简单,但只管理静态表AbstractTableModel
的类,您可以在其中覆盖正确的方法,将二维集合映射到正确的行为。答案 2 :(得分:1)
我不确定我是否理解你的问题。 无论如何,如果您的表有3列并且您已将表模型定义为已定义的here,则必须对数组进行操作并以这种方式将值放入表中:
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(Object aValue,int row,int column)
如果要将arrayList转换为数组,可以:
ArrayList<String> arrayList;
String[] data = new String[arrayList.size()];
data = arrayList.toArray(data);
Bye Luca