当前位置: 首页 > 知识库问答 >
问题:

如何在JTable中获取最后一个单元格的值?

沃盛
2023-03-14

我有个问题。。。代码运行正常,但无法获取最后一行和最后一列的最后一个单元格的值。下面是代码。。。请引导

使用此代码,我动态地向JTable添加行:if(e.getSource()==addb){

        model.addRow(new Object[3]);
        repaint();

    }

下面是从JTable行以及以后而不是系统中获取值的代码。出来println()我将向数据库发送数据。。。

if(e.getSource()==submit)
    {
        int j = table.getRowCount();
        for(int row=1;row<j;row++)
        {
            for(int column=0;column<3;column++)
            {
                System.out.println("row  "+row+"   Column is  "+column);                    
                System.out.println(model.getValueAt(row, column));
            }
        }

    }

共有3个答案

郎宣
2023-03-14

感谢阿扎德,
它现在工作出色...
我有一个编辑的代码一点点,从所有行获取数据...

 int i= table.getRowCount()-1;
        int j= table.getColumnCount();

        for (int d=1;d<i+1;d++){   // will provide row wise data
        for(int k = 0 ; k<j ; k++)  // will provide column wise data
        {
          System.out.println("row num   "+d+"   "+model.getValueAt(d,k));
        }   }
微生烨然
2023-03-14

在单击"Submit"按钮时大胆猜测您正在编辑最后一个单元格。

如果是,请参见:表格停止编辑。

郭璞
2023-03-14

像这样的东西:

int i= table1.getRowCount()-1;
int j= table1.getColumnCount();
Object [] value = new Object[j];
for(int k = 0 ; k<j ; k++)
{
value[k] = model.getValueAt(i,k);
}   

也看这个小例子

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TableTest extends JFrame implements ActionListener{

    JTable table ;
    JButton button;
    public TableTest(){
        String []colNames = {"Subject","lecturer"}; 
        String [][] rowDatas = { {"Java Programming","Jon"},
                                 {"C++ Programming","Nuhara"},
                                 {"Mathematicz","Mike"},
                                 {"Database","Saran"}
                                };
        table = new JTable(rowDatas,colNames);

        button = new JButton("Show Last Record");
        button.addActionListener(this);

        this.add(table);
        this.add(button);
        this.setVisible(true);
        this.setSize(300,200);
        this.setDefaultCloseOperation(3);
        this.setLayout(new FlowLayout());
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        int i= table.getRowCount()-1;
        int j= table.getColumnCount();
        Object [] value = new Object[j];
        for(int k = 0 ; k<j ; k++)
        {
        //value[k] = table.getValueAt(i,k);
            System.out.println(table.getValueAt(i, k));
        }  
    }


    public static void main(String...ag){
        new TableTest();
    }
}
 类似资料:
  • 这是我的表类 如果((布尔)model.getValueat(r,3)==true){col.setpk(true);} 它给出错误,因为返回类型是布尔型。

  • 问题内容: 如何在单元格中居中放置值?我正在使用Netbeans。 问题答案: 您需要自定义渲染器。要居中第一列,您可以执行以下操作: 要使所有列都以String数据为中心,您可以执行以下操作:

  • 我的代码有一个特殊的问题。 然后它会发生在图像上出现的事情。我需要汉字列是CENTER对齐,但出于某种原因,'tcr,不工作,因为它应该是,但默认渲染器正在做它应该是。 有什么建议/帮助吗?

  • 问题内容: 我正在尝试实现本教程中描述的自定义TableRenderer 。我想让渲染器对每个给定单元格很长的文本进行换行。这个想法是,使用TextArea作为渲染器,因为它支持换行。但是,以下代码无法正常工作: 我将此渲染器设置为 但是单元格条目保持未包装状态。如果我添加到该方法,则所有单元格都按预期是黄色,但没有被包裹。 有任何想法吗? 更新: 正如Michael Borgwardt在评论中指

  • 提取切片的最后一个元素的方式是什么? 上述解决方案可行,但似乎有些尴尬。

  • 问题内容: 我正在尝试在连接到数据库的jtable上使用update方法,并希望根据用户单击的行来填写表单上的文本字段。我知道我将需要一个getValueAt()方法,但是我不确定如何根据用户单击的行来填充哪一行。我无法在Google上找到任何内容,因此任何信息都将对您有所帮助! 问题答案: 您将需要调用表模型的getValueAt()来获取所需的值。您还将在表上需要一个侦听器来侦听选择。这样,一