Как обновить JTable, используя значения из массива в Java - PullRequest
1 голос
/ 06 февраля 2012

Привет! Я преобразовал свой массив в массив, чтобы я мог использовать его для отображения его элементов в 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 ]

1 голос
/ 06 февраля 2012

1) ArrayList в столбце AbstractTableModel возвращает, пожалуйста, прочитайте учебник о JTable как TableModel работает

2) вы можете изменить ArrayList<Integer> на Vector<Vector<Integer>> или Interger[][], тогда вам не нужно определять для AbstractTableModel, используйте только конструктор по умолчанию для JTable

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

или

JTable (Vector rowData, Vector columnNames)

3) добавить значение Integer в DefaultTableModel

0 голосов
/ 06 февраля 2012

list.get(age[row]); требует list.get(int), тогда как age[row] является объектом.

Итак, попробуйте это

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

и чем

 list.get(i);
...