如何将所有JTable行转换为字符串数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将所有JTable行转换为字符串数组?相关的知识,希望对你有一定的参考价值。

所以我的程序中有一个有4列的JTable

ID(int) - 名称(字符串) - 数量(int) - 用法(int)

每次填充JTable时,它都有不同的数据量。我想要做的是从表中获取所有数据(IE X行数可以说5)并将所有数据保存到字符串数组中;或者如果你有更好的方法。

最终我想获取表数据并将其保存到文本文件中。我已经查看了其他SOF问题并看到了一个对象方法,但我不确定那是否正在寻找。

想法?

编辑:当前代码(工作,但似乎很脏;是否正确?)

String[][] tableString = new String[table_Drops.getRowCount()][table_Drops.getColumnCount()];
    for (int i = 0; i < table_Drops.getRowCount(); i++) {
        tableString[i][0] = String.valueOf(table_Drops.getValueAt(i, 0));
        tableString[i][1] = String.valueOf(table_Drops.getValueAt(i, 2));
        tableString[i][2] = String.valueOf(table_Drops.getValueAt(i, 3));
        tableString[i][3] = String.valueOf(table_Drops.getValueAt(i, 4));
    }
答案

你的代码应该有用,唯一不洁的部分是你访问JTable时的神奇数字。您可以使用嵌套循环。

使用File将数据写入FileWriter是直截了当的:

private static void writeTableDataByRowAmount(JTable table, int rows) throws IOException
{

    String pathToFile = "C:\Users\bob\Desktop\file.txt";
    String text = "";

    for(int i=0 ; i<rows ; i++) 
    {
        for(int j=0 ; j<table.getColumnCount() ; j++)
        {
            text += table.getValueAt(i, j);
            text += " ";
        }
    }

    BufferedWriter writer = new BufferedWriter(new FileWriter(pathToFile));
    writer.write(text);
    writer.close();
}

以上是关于如何将所有JTable行转换为字符串数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 BVH 节点对象转换为简单数组?

以正确的顺序向 JTable 添加行。

如何将表列转换为数组?

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

C++ 如何将命令行参数转换为数组?