如何使用java中数组的值更新JTable

时间:2012-02-05 20:06:31

标签: java arrays swing arraylist jtable

您好我将我的arraylist转换为数组,因此我可以使用它在JTable中显示其元素,但没有显示任何内容。它给了我一个错误(错误在代码注释中解释)。我只想要一个列显示来自此数组的值。有人可以指导我正确的方向吗?感谢

这是我的代码:

private static class EnvDataModel extends AbstractTableModel {

    private static final long serialVersionUID = 1L;

    private static ArrayList<Integer> list = new ArrayList<Integer>();
    private Object age[];

...

    public EnvDataModel() {
        age=list.toArray();
    }

    public String getColumnName(int col) {

            return "Age";
    }

    public int getColumnCount() {
        return 1;
    }

    public int getRowCount() {
        return list.size();
    }

    public Object getValueAt(int row, int col) {
            // Error message The method get(int) in the type ArrayList<Integer> is not applicable for the arguments (Object)
            return list.get(age[row]);  
    }
}

2 个答案:

答案 0 :(得分:1)

1)ArrayList AbstractTableModel返回专栏,请阅读有关JTable TableModel工作原理的教程

2)您可以将ArrayList<Integer>更改为Vector<Vector<Integer>>Interger[][],然后您无需为AbstractTableModel定义,只需使用{{1}的默认构造函数}}

JTable(Object[][] rowData, Object[] columnNames)

JTable(Vector rowData, Vector columnNames)

3)将JTable值添加到DefaultTableModel

答案 1 :(得分:0)

list.get(age[row]);需要list.get(int)age[row]是对象。

所以,试试这个

int i =Integer.parseInt( age[row].toString() ); 

而不是

 list.get(i);