从JTable中按索引获取行

问题描述 投票:1回答:7

如何从JTable索引获取行?我查看了成员函数,但是没有什么像getRowAt一样。有人可以帮忙吗?

java jtable
7个回答
4
投票

没有表的“行”对象,因此使用getRow方法无法获得任何结果。

您可以要求getValueAt()获取各个值,将其用于每一列,然后获得完整的行。


4
投票

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()


1
投票

我建议基于POJO列表创建TableModel。

然后可以很容易地添加类似的方法:

   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


1
投票

尝试这样的事情

private void getIndexRow(){
    int i;
    int row = 0;
    int column = 0;
    i=Integer.parseInt(myTable.getValueAt(row,column).toString());
}

0
投票

另一种方法是使用表模型的getDataVector()方法。

getDataVector()

0
投票
DefaultTableModel tm = (DefaultTableModel) table.getModel();
Vector<Object> rowData = tm.getDataVector().elementAt(rowIndex);

使用它,您可以在单击特定行时获得整行的值。


0
投票

此功能对我来说很好用。

 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));
            }

        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.