从JTable获取索引行

如何使用索引来获取JT? 我查看了成员函数,但没有像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); 

看看我前段时间写的这个样本的起点: http : //puces-samples.svn.sourceforge.net/viewvc/puces-samples/tags/sessionstate-1.0/sessionstate-suite/sessionstate-sample/ SRC / BlogSpot的/深褐色/ SessionState的/样品/ ParticipantTableModel.java?修订= 13&视图=标记

尝试这样的事情

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

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

 DefaultTableModel tm = (DefaultTableModel) table.getModel(); Vector 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)); } } }); } 

使用此方法,您可以获得整行的值,点击特定行。

这个function对我来说很有用。

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