增长JTable行的问题

时间:2011-07-22 14:31:37

标签: java swing jtable

我正在制作一个代码,其中我有一个JTable我自己制作的表模型(它不是默认的),我必须在程序执行时填充数据。因此,随着数据的增加,行数也会增加(diff。在差异时间)。我不想显示不必要的行,我的意思是不要通过提前创建一个大堆来显示空行。

由于数组大小是固定的(我想先做的事情),有没有人可以用最好的方法帮助我?

2 个答案:

答案 0 :(得分:3)

请改用ArrayList<T>。它根据需要在内部调整数据结构的大小。

ArrayList<Integer[]> arrayList = new ArrayList<Integer[]>();

arrayList.add(new Integer[]{1, 2});
arrayList.add(new Integer[]{3, 4});
arrayList.add(new Integer[]{5, 6});

答案 1 :(得分:2)

只需在需要时向模型添加新行。在一个简单的例子中,您可以使用DefaultTableModel(默认情况下由JTable使用),或者如果它不够灵活,可以通过扩展AbstractTableModel来实现您自己的模型。像这样:

DefaultTableModel model = new DefaultTableModel();
model.addColumn("Number");
model.addColumn("Number + 1");

//Add pointless numbers to model
for(int i = 0; i < 10; i++) {
    model.addRow(new Integer[] { i, i + 1});
}

JTable table = new JTable(model);

模型将在您修改时通知JTable更改。如果模型的概念对你来说似乎很陌生,我建议阅读JTable组件的官方介绍:http://download.oracle.com/javase/tutorial/uiswing/components/table.html