Java 从JTable中按索引获取行

Java 从JTable中按索引获取行,java,jtable,Java,Jtable,如何使用索引i froj JTable获取行?我研究了成员函数,但没有什么比getRowAt更棒的了。有人能帮忙吗?表没有“row”对象,所以用getRow方法无法得到任何东西 您可以要求getValueAt()获取单个值,对每列使用它,您就有了完整的行。表没有“row”对象,因此使用getRow方法无法获取任何内容 您可以要求getValueAt()获取单个值,将其用于每一列,您就有了完整的行。好的,没有这样的方法。写下这样的话: public String[] getRowAt(int ro

如何使用索引i froj JTable获取行?我研究了成员函数,但没有什么比getRowAt更棒的了。有人能帮忙吗?

表没有“row”对象,所以用getRow方法无法得到任何东西

您可以要求
getValueAt()
获取单个值,对每列使用它,您就有了完整的行。

表没有“row”对象,因此使用getRow方法无法获取任何内容


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

好的,没有这样的方法。写下这样的话:

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;
}
public String[]getRowAt(int行){
字符串[]结果=新字符串[colNumber];
for(int i=0;i

p.S-如果您想尊重按用户列顺序重新排列的列,请使用
table.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;
}
public String[]getRowAt(int行){
字符串[]结果=新字符串[colNumber];
for(int i=0;i

p.S-如果您希望遵守按用户列顺序重新排列的列表,请使用
table.getValueAt()

我建议基于POJO列表创建TableModel

然后很容易添加如下方法:

   MyPojo getData(int index);
看看我不久前写的这个示例,作为一个起点:

我建议根据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());
}

试试这样的

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

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

DefaultTableModelTM=(DefaultTableModel)table.getModel();
Vector rowData=tm.getDataVector().elementAt(rowIndex);

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

DefaultTableModelTM=(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(新的ListSelectionListener()
{
@凌驾
public void值已更改(ListSelectionEvent e)
{
ListSelectionModel lsm=(ListSelectionModel)e.getSource();
selectedRow=lsm.getMinSelectionIndex();
int numCols=jTable1.getColumnCount();
model=(DefaultTableModel)jTable1.getModel();
System.out.print(“\n行”+selectedRow+“:”);
对于(int j=0;j
使用此选项,您可以在单击特定行的位置获得整行的值。

private void jTable1MousePressed(java.awt.event.MouseEvent evt){
int-selectedRow;
ListSelectionModel rowSM=jTable1.getSelectionModel();
rowSM.addListSelectionListener(新的ListSelectionListener()
{
@凌驾
public void值已更改(ListSelectionEvent e)
{
ListSelectionModel lsm=(ListSelectionModel)e.getSource();
selectedRow=lsm.getMinSelectionIndex();
int numCols=jTable1.getColumnCount();
model=(DefaultTableModel)jTable1.getModel();
System.out.print(“\n行”+selectedRow+“:”);
对于(int j=0;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;
}
private Object[]getRowAt(int行,DefaultTableModel模型){
Object[]result=新对象[model.getColumnCount()];
对于(int i=0;i
这个函数对我来说运行得很好

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;
}
private Object[]getRowAt(int行,DefaultTableModel模型){
Object[]result=新对象[model.getColumnCount()];
对于(int i=0;i
在我看来,您应该避免使用DefaultTableModel,因为它几乎总是与您放入模型中的现有数据的结构无关。Sun将其添加到sdk imo中是一个错误。在我看来,您应该避免使用DefaultTableModel,因为它几乎总是与您放入模型中的现有数据的结构无关。Sun将其添加到sdk imo中是一个错误。可能,但您不需要执行任何操作:如果模型不是DefaultTableModel类型(您需要在代码段中强制转换),则无论如何都无法工作。传递原始的、未编译的底层数据结构的一部分是自找麻烦,因为代码可能会意外地更改其内容,从而违反了模型在changeGood point上通知其侦听器的约定。也许有人想这么做。我在答案中添加了一个强制转换。可能,但您不需要执行任何操作:如果模型不是DefaultTableModel类型,则无论如何都不会工作(您的代码段中需要强制转换)。传递原始的、未编译的底层数据结构的一部分是自找麻烦,因为代码可能会意外地更改其内容,从而违反了模型在changeGood point上通知其侦听器的约定。也许有人想这么做。