Как собрать все данные из первого столбца таблицы в массив? - PullRequest
0 голосов
/ 16 апреля 2020

Я использую NetBeans 8. Мне нужно l oop, чтобы собрать все идентификаторы сотрудников из первого столбца jtable и сохранить эти идентификаторы в массив.

  if (jTabledetail.getRowCount() > 0) {
        String ecode = "";

        int ishasRow = jTabledetail.getRowCount();// total 1 row

        for (int r = 0; r <= ishasRow; r++) {// loop twice. First loop is gone, return to second loop or final loop for 1 row exists giving error bellow.
            ecode = jTabledetail.getValueAt(r, 0).toString();
            arrempcode.add(ecode);
        }

    }

Я также попытался перейти на ==> > for (int r = 0; r Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1 at java.util.Vector.elementAt(Vector.java:474) at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648) at javax.swing.JTable.getValueAt(JTable.java:2717) Я не понимаю ошибку. Я знал, что ошибка исходит из выражения l oop. Я не уверен в этой ошибке. Теперь в моей jtable с именем "jTabledetail" существует 1 строка. Нужно ли что-то изменить для этого случая ошибки? Я не уверен, что выражение l oop неверно. Большое спасибо.

1 Ответ

1 голос
/ 18 апреля 2020
DefaultTableModel tableModel = (DefaultTableModel) TableName.getModel();

Получить количество строк таблицы

int rowCount = tableModel.getRowCount();

Объявить ArrayList

ArrayList<Object> list = new ArrayList<Object>();

Обход таблицы и добавление значений в массив

for(int i=0; i<rowCount; i++){
    for(int j=0; j<tableModel.getColumnCount(); j++){
        if(j==0){
            list.add(tableModel.getValueAt(i,j));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...