您好我将我的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]);
}
}
答案 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);