如何将所有JTable行放入字符串数组?

时间:2019-03-31 00:38:36

标签: java swing jtable

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

ID(int)-名称(string)-数量(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));
    }

1 个答案:

答案 0 :(得分:0)

您的代码应该可以使用,唯一不干净的部分是访问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();
}