Получить строку по индексу из JTable - PullRequest
1 голос
/ 30 марта 2011

Как получить строку с индексом в таблице JTable? Я посмотрел на функции-члены, но нет ничего, как getRowAt. Кто-нибудь может помочь?

Ответы [ 7 ]

4 голосов
/ 30 марта 2011

AFAIK, такого метода нет. Напишите что-нибудь подобное:

public String[] getRowAt(int row) {
     String[] result = new String[colNumber];

     for (int i = 0; i < colNumber; i++) {
         result[i] = table.getModel().getValueAt(row, col);
     }

     return result;
}

P.S - используйте table.getValueAt(), если вы хотите соблюдать порядок, упорядоченный по столбцу пользователя.

4 голосов
/ 30 марта 2011

Для таблицы нет объекта "row", поэтому вы ничего не можете получить с помощью метода getRow.

Вы можете попросить getValueAt() получить индивидуальные значения, используйте их для каждого столбца, и у вас будет полная строка.

1 голос
/ 30 марта 2011

Попробуйте что-то вроде этого

private void getIndexRow(){
    int i;
    int row = 0;
    int column = 0;
    i=Integer.parseInt(myTable.getValueAt(row,column).toString());
}
1 голос
/ 30 марта 2011

Я рекомендую создать TableModel на основе списка POJO.

Тогда легко добавить метод, подобный:

   MyPojo getData(int index);

Посмотрите на этот пример, который я написал некоторое времяназад для начальной точки: http://puces -samples.svn.sourceforge.net / viewvc / puces-samples / tags / sessionstate-1.0 / sessionstate-suite / sessionstate-sample / src / blogspot / puce / sessionstate / sample/ParticipantTableModel.java?revision=13&view=markup

0 голосов
/ 30 мая 2015

Эта функция хорошо работает для меня.

private Object[] getRowAt(int row, DefaultTableModel model) {
    Object[] result = new Object[model.getColumnCount()];

     for (int i = 0; i < model.getColumnCount(); i++) {
         result[i] = model.getValueAt(row, i);
     }

     return result;
}
0 голосов
/ 18 декабря 2013
 private void jTable1MousePressed(java.awt.event.MouseEvent evt) {                                     

    int selectedRow;

    ListSelectionModel rowSM = jTable1.getSelectionModel();

      rowSM.addListSelectionListener(new ListSelectionListener()
      {
        @Override
        public void valueChanged(ListSelectionEvent e) 
        {
            ListSelectionModel lsm = (ListSelectionModel) e.getSource();

            selectedRow = lsm.getMinSelectionIndex();

            int numCols = jTable1.getColumnCount();

            model = (DefaultTableModel) jTable1.getModel();

            System.out.print(" \n row " + selectedRow + ":");

            for (int j = 0; j < numCols; j++) 
            {
                System.out.print(" " + model.getValueAt(selectedRow, j));
            }

        }
    });
}

Используя это, вы можете получить значение целой строки, где вы нажимаете на конкретную строку.

0 голосов
/ 21 апреля 2013

Еще один способ сделать это - использовать метод таблицы getDataVector().

DefaultTableModel tm = (DefaultTableModel) table.getModel();
Vector<Object> rowData = tm.getDataVector().elementAt(rowIndex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...