private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
        // TODO add your handling code here:
        int retVal = jFileChooser.showOpenDialog(this);
        if (retVal == JFileChooser.APPROVE_OPTION) {
            long timestamp = new Date().getTime();
            File filename = new File(jFileChooser.getSelectedFile(), "SoSafeBillReport_" + timestamp + ".html");
            try {
                Writer out = new BufferedWriter(new FileWriter(filename));
                HTMLFormatter formatter = new SimpleHTMLFormatter();
                BillReportGenerator reporter = new BillReportGenerator(formatter);
                reporter.buildBillReport();
                out.write(formatter.getResult(true));
                out.flush();
                out.close();
                JOptionPane.showMessageDialog(null, "Your bill report was successfully saved in:\n" + filename.getParent()
                        + "\nIts name is: " + filename.getName());
            } catch (IOException ex) {
                Logger.getLogger(BillPanel.class.getName()).log(Level.SEVERE, null, ex);
                JOptionPane.showMessageDialog(null, "Failed to save your bill report in:\n" + filename.getParent()
                        + "\nPlease check the permission of that path.");
            }
        }

    }//GEN-LAST:event_saveButtonActionPerformed