当前位置: 代码迷 >> java >> 从 JTable 按索引获取行
  详细解决方案

从 JTable 按索引获取行

热度:9   发布时间:2023-07-25 18:59:24.0

如何获取索引 i froj JTable 的行? 我查看了成员函数,但没有像 getRowAt 那样的东西。 有人可以帮忙吗?

表没有“行”对象,因此您无法使用 getRow 方法获得任何信息。

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

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

PS - 如果您想尊重用户列顺序的重新排列,请使用table.getValueAt()

我建议根据 POJO 列表创建一个 TableModel。

然后很容易添加一个方法,如:

   MyPojo getData(int index);

看看我前段时间写的这个示例作为起点: :

尝试这样的事情

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

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

DefaultTableModel tm = (DefaultTableModel) table.getModel();
Vector<Object> rowData = tm.getDataVector().elementAt(rowIndex);
 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));
            }

        }
    });
}

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

这个功能对我来说效果很好。

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;
}
  相关解决方案