Как получить все строки JTable в массив строк? - PullRequest
0 голосов
/ 31 марта 2019

Итак, в моей программе есть 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));
    }

1 Ответ

0 голосов
/ 31 марта 2019

Ваш код должен работать, единственная нечистая часть - это магические числа, которые вы имеете при доступе к вашему 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...