При загрузке JTable из txtfile пустые ячейки отображаются как ноль - PullRequest
0 голосов
/ 02 мая 2019

У меня есть программа, которая позволяет добавлять курсы в однонедельный календарь, который является JTable, я хочу, чтобы он работал таким образом, чтобы при нажатии на кнопку сохранения календарь сохранялся в текстовом файле, а затем при запуске приложение снова загрузит сохраненные курсы в JTable. Проблема, с которой я столкнулся, заключается в том, что при сохранении таблицы пустые ячейки сохраняются как нулевые, а при загрузке их пустые ячейки отображаются как нулевые, и я хочу, чтобы они загружались пустыми.

Я попытался использовать вложенный цикл for, чтобы установить все нулевые значения в "", но он просто показывает полную таблицу JTable как пустую.


"Below is code to save full table into .txt file"
public void actionPerformed(ActionEvent e) 
            {
                try {
                    PrintWriter outputFile = new PrintWriter("C:\\Users\\Shervin\\eclipse-workspace\\GUIDemo2\\CourseSchedule.txt");
                    for(int i = 0;i<table.getRowCount();i++)
                    {
                        for (int j= 0;j<table.getColumnCount();j++)
                        {   
                                outputFile.print(table.getValueAt(i, j));
                                outputFile.print(",");
                        }
                        outputFile.println();
                    }
                    JOptionPane.showMessageDialog(null, "Schedule has been saved...");
                    outputFile.close();
                } 
                catch (FileNotFoundException e2) {
                    e2.printStackTrace();
                }
            }
        });


"Below is the code to load table from txt.file back into JTable"
private void loadInto()
    {
        try {
            Scanner scanner = new Scanner(new BufferedReader(new FileReader("C:\\Users\\Shervin\\eclipse-workspace\\GUIDemo2\\CourseSchedule.txt")));
            while(scanner.hasNextLine())
            {
                for(int i = 0;i<table.getRowCount();i++) {
                    String[] line = scanner.nextLine().trim().split(",");
                    for (int j = 0;j<table.getColumnCount();j++)
                    {   
                        table.setValueAt(line[j], i, j);    
                    }

                }

            }


            scanner.close();
        }catch (IOException ioexception) {}
    }
...