Created
January 24, 2016 00:25
-
-
Save loloDawit/5117eb4ca95c1f5ed47b to your computer and use it in GitHub Desktop.
AutoLoanCalculator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.io.BufferedWriter; | |
| import java.io.File; | |
| import java.io.FileNotFoundException; | |
| import java.io.FileOutputStream; | |
| import java.io.FileWriter; | |
| import java.io.IOException; | |
| import java.io.ObjectOutputStream; | |
| import java.text.MessageFormat; | |
| import javax.swing.JFileChooser; | |
| import javax.swing.JOptionPane; | |
| import javax.swing.JTable; | |
| import javax.swing.table.DefaultTableModel; | |
| import javax.swing.table.TableModel; | |
| /** | |
| * | |
| * @author Dave | |
| */ | |
| public class autoLoanMenu extends javax.swing.JFrame { | |
| private String saveLocation = null; | |
| /** | |
| * Creates new form mainMenu | |
| */ | |
| public autoLoanMenu() { | |
| initComponents(); | |
| setLocationRelativeTo(null);// set the application to start at the center of the screen | |
| } | |
| /** | |
| * This method is called from within the constructor to initialize the form. | |
| * WARNING: Do NOT modify this code. The content of this method is always | |
| * regenerated by the Form Editor. | |
| */ | |
| @SuppressWarnings("unchecked") | |
| // <editor-fold defaultstate="collapsed" desc="Generated Code"> | |
| private void initComponents() { | |
| mainPanel = new javax.swing.JPanel(); | |
| titleLabel = new javax.swing.JLabel(); | |
| loanLabel = new javax.swing.JLabel(); | |
| aprLabel = new javax.swing.JLabel(); | |
| termLabel = new javax.swing.JLabel(); | |
| loanTextField = new javax.swing.JTextField(); | |
| aprTextField = new javax.swing.JTextField(); | |
| termTextField = new javax.swing.JTextField(); | |
| resetB = new javax.swing.JButton(); | |
| calculateB = new javax.swing.JButton(); | |
| pb = new javax.swing.JButton(); | |
| yearLabel = new javax.swing.JLabel(); | |
| resultPanel = new javax.swing.JPanel(); | |
| tableScrolPane = new javax.swing.JScrollPane(); | |
| rest = new javax.swing.JTable(); | |
| backB = new javax.swing.JButton(); | |
| extrapayment = new javax.swing.JLabel(); | |
| extraText = new javax.swing.JTextField(); | |
| payoff = new javax.swing.JLabel(); | |
| interestLabel = new javax.swing.JLabel(); | |
| resultLabel = new javax.swing.JLabel(); | |
| Interestpaid = new javax.swing.JLabel(); | |
| orP = new javax.swing.JLabel(); | |
| MenuBar = new javax.swing.JMenuBar(); | |
| jMenu1 = new javax.swing.JMenu(); | |
| saveItem = new javax.swing.JMenuItem(); | |
| saveas = new javax.swing.JMenuItem(); | |
| exitItem = new javax.swing.JMenuItem(); | |
| jMenu2 = new javax.swing.JMenu(); | |
| editMenu = new javax.swing.JMenuItem(); | |
| setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |
| setTitle("Amorization Calculator"); | |
| setResizable(false); | |
| titleLabel.setFont(new java.awt.Font("Lucida Grande", 1, 18)); // NOI18N | |
| titleLabel.setText(" Loan Calculator"); | |
| loanLabel.setText("Loan Amount:"); | |
| aprLabel.setText("APR (%):"); | |
| termLabel.setText("Loan Term"); | |
| loanTextField.setForeground(new java.awt.Color(204, 204, 204)); | |
| loanTextField.setBorder(javax.swing.BorderFactory.createEtchedBorder()); | |
| loanTextField.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| loanTextFieldActionPerformed(evt); | |
| } | |
| }); | |
| aprTextField.setBorder(javax.swing.BorderFactory.createEtchedBorder()); | |
| termTextField.setBorder(javax.swing.BorderFactory.createEtchedBorder()); | |
| resetB.setText("Reset"); | |
| resetB.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| resetBActionPerformed(evt); | |
| } | |
| }); | |
| calculateB.setText("Calculate"); | |
| calculateB.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| calculateBActionPerformed(evt); | |
| } | |
| }); | |
| pb.setText("Print"); | |
| pb.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| pbActionPerformed(evt); | |
| } | |
| }); | |
| yearLabel.setText("Years"); | |
| resultPanel.setToolTipText("Summary"); | |
| resultPanel.setLayout(new java.awt.BorderLayout()); | |
| rest.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N | |
| rest.setModel(new javax.swing.table.DefaultTableModel( | |
| new Object [][] { | |
| }, | |
| new String [] { | |
| "Month", "Monthly Payment", "Principal Paid", "Interest Paid", "Balance" | |
| } | |
| )); | |
| rest.setAutoscrolls(isResizable()); | |
| rest.setShowGrid(false); | |
| rest.getTableHeader().setResizingAllowed(false); | |
| rest.getTableHeader().setReorderingAllowed(false); | |
| tableScrolPane.setViewportView(rest); | |
| backB.setText("Back"); | |
| backB.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| backBActionPerformed(evt); | |
| } | |
| }); | |
| extrapayment.setText("Extra Payment Per Month"); | |
| extraText.setBorder(javax.swing.BorderFactory.createEtchedBorder()); | |
| payoff.setForeground(new java.awt.Color(51, 51, 51)); | |
| payoff.setText("Payoff Earlier By:"); | |
| interestLabel.setForeground(new java.awt.Color(51, 51, 51)); | |
| resultLabel.setForeground(new java.awt.Color(51, 51, 51)); | |
| Interestpaid.setForeground(new java.awt.Color(51, 51, 51)); | |
| orP.setForeground(new java.awt.Color(51, 51, 51)); | |
| orP.setText("With Additinal Payment: "); | |
| javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel); | |
| mainPanel.setLayout(mainPanelLayout); | |
| mainPanelLayout.setHorizontalGroup( | |
| mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGap(63, 63, 63) | |
| .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addContainerGap() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addComponent(loanLabel) | |
| .addComponent(aprLabel) | |
| .addComponent(termLabel) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGap(6, 6, 6) | |
| .addComponent(resetB))) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addComponent(calculateB) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
| .addComponent(pb)) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGap(35, 35, 35) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) | |
| .addComponent(aprTextField) | |
| .addComponent(termTextField) | |
| .addComponent(loanTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE)) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addComponent(yearLabel) | |
| .addGap(72, 72, 72) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addComponent(interestLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addComponent(resultLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addComponent(Interestpaid, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |
| .addComponent(resultPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addComponent(orP) | |
| .addComponent(payoff)) | |
| .addGap(0, 0, Short.MAX_VALUE))) | |
| .addContainerGap()))) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addComponent(extrapayment) | |
| .addGap(5, 5, 5) | |
| .addComponent(extraText, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGap(6, 6, 6) | |
| .addComponent(tableScrolPane, javax.swing.GroupLayout.PREFERRED_SIZE, 488, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addComponent(backB, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))) | |
| .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) | |
| ); | |
| mainPanelLayout.setVerticalGroup( | |
| mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) | |
| .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addComponent(orP)) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| .addComponent(loanLabel) | |
| .addComponent(loanTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addComponent(payoff)) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| .addComponent(aprTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addComponent(aprLabel)) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addComponent(termTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| .addComponent(termLabel) | |
| .addComponent(yearLabel))) | |
| .addGap(6, 6, 6) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| .addComponent(extrapayment) | |
| .addComponent(extraText, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
| .addGap(9, 9, 9) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| .addComponent(resetB) | |
| .addComponent(calculateB) | |
| .addComponent(pb))) | |
| .addComponent(resultPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) | |
| .addGroup(mainPanelLayout.createSequentialGroup() | |
| .addComponent(interestLabel) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
| .addComponent(resultLabel) | |
| .addGap(11, 11, 11) | |
| .addComponent(Interestpaid))) | |
| .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addComponent(tableScrolPane, javax.swing.GroupLayout.DEFAULT_SIZE, 252, Short.MAX_VALUE) | |
| .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup() | |
| .addGap(177, 177, 177) | |
| .addComponent(backB))) | |
| .addContainerGap()) | |
| ); | |
| jMenu1.setText("File"); | |
| saveItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, 0)); | |
| saveItem.setIcon(new javax.swing.ImageIcon("/Users/Dave/Desktop/Save.png")); // NOI18N | |
| saveItem.setText("Save"); | |
| saveItem.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| saveItemActionPerformed(evt); | |
| } | |
| }); | |
| jMenu1.add(saveItem); | |
| saveas.setText("Save As"); | |
| saveas.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| saveasActionPerformed(evt); | |
| } | |
| }); | |
| jMenu1.add(saveas); | |
| exitItem.setIcon(new javax.swing.ImageIcon("/Users/Dave/Desktop/exit.png")); // NOI18N | |
| exitItem.setText("Exit"); | |
| exitItem.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| exitItemActionPerformed(evt); | |
| } | |
| }); | |
| jMenu1.add(exitItem); | |
| MenuBar.add(jMenu1); | |
| jMenu2.setText("Edit"); | |
| editMenu.setIcon(new javax.swing.ImageIcon("/Users/Dave/Desktop/calculator-icon.png")); // NOI18N | |
| editMenu.setText("calculation Help"); | |
| editMenu.addActionListener(new java.awt.event.ActionListener() { | |
| public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| editMenuActionPerformed(evt); | |
| } | |
| }); | |
| jMenu2.add(editMenu); | |
| MenuBar.add(jMenu2); | |
| setJMenuBar(MenuBar); | |
| javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); | |
| getContentPane().setLayout(layout); | |
| layout.setHorizontalGroup( | |
| layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() | |
| .addComponent(mainPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 563, Short.MAX_VALUE) | |
| .addContainerGap()) | |
| ); | |
| layout.setVerticalGroup( | |
| layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() | |
| .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |
| .addContainerGap()) | |
| ); | |
| pack(); | |
| }// </editor-fold> | |
| private void resetBActionPerformed(java.awt.event.ActionEvent evt) { | |
| // resets the tabel | |
| DefaultTableModel model = (DefaultTableModel) rest.getModel(); | |
| model.setRowCount(0); | |
| //resets everything | |
| loanTextField.setText(""); | |
| aprTextField.setText(""); | |
| termTextField.setText(""); | |
| resultLabel.setText(""); | |
| interestLabel.setText(""); | |
| Interestpaid.setText(""); | |
| extraText.setText(""); | |
| } | |
| private void calculateBActionPerformed(java.awt.event.ActionEvent evt) { | |
| try{ | |
| DefaultTableModel model = (DefaultTableModel) rest.getModel(); | |
| double interest ; | |
| double newbal; | |
| double numberofpayments; | |
| double monthlypayment, initalpayment, principalpaid,interestpaid; | |
| double totalinterestpaid; | |
| int i; | |
| double monthlypayment1; | |
| double nofpayments; | |
| double principal = Double.parseDouble(loanTextField.getText());// changes the user input "String" to double | |
| double aprtext = Double.parseDouble(aprTextField.getText());//changes the user input "String" to double | |
| double termtext = Double.parseDouble(termTextField.getText());// changes the user input "String" to double | |
| double extra = Double.parseDouble(extraText.getText()); | |
| if(principal == 0 || termtext==0){ | |
| JOptionPane.showMessageDialog(this,"Please Check Your Input!!"); // error message with show up if the input for text field is zero | |
| }else{ | |
| // the calcution starts here | |
| interest = ((aprtext/12)/100);// changes the user input "years" to months | |
| numberofpayments= termtext*12; | |
| monthlypayment = principal*interest*Math.pow(1+ interest,(double)numberofpayments)/(Math.pow(1+ interest,(double)numberofpayments)-1); | |
| for (i=1; i<=numberofpayments;i++){ | |
| initalpayment = principal *interest; | |
| principalpaid = monthlypayment- initalpayment; | |
| String pp = String.format("%.2f",principalpaid); | |
| interestpaid = monthlypayment-principalpaid; | |
| String ip = String.format("%.2f",interestpaid); | |
| monthlypayment1 =(monthlypayment); | |
| String monthlypay = String.format("%.2f", monthlypayment1); | |
| resultLabel.setText("Monthly payment: "+"$"+monthlypay); | |
| nofpayments = (monthlypayment*numberofpayments); | |
| String month = String.format("%.2f",nofpayments); | |
| interestLabel.setText("Total Payment: "+"$"+month); | |
| orP.setText("Interest Saving: "+ " $"+extra); | |
| totalinterestpaid = (monthlypayment*numberofpayments)-principal; | |
| String totalinterest = String.format("%.2f",totalinterestpaid );//creates new String and uses String.format to change decimal palces | |
| Interestpaid.setText("Total Interest Paid: "+(totalinterest)); | |
| newbal = principal-principalpaid-extra; | |
| String nb = String.format("%.2f",newbal); | |
| if(newbal<0){ | |
| numberofpayments=i; | |
| newbal=0; | |
| nb = String.format("%.2f",newbal); | |
| } | |
| principal = newbal; | |
| model.addRow(new Object[]{i,monthlypay,pp,ip,nb}); | |
| payoff.setText("Payoff Earlier By:"+i+" Month"); | |
| } | |
| } | |
| } | |
| catch(NumberFormatException e){ | |
| JOptionPane.showMessageDialog(this,"Please Enter a Number!!"); | |
| } | |
| } | |
| private void backBActionPerformed(java.awt.event.ActionEvent evt) { | |
| frontMenu menu = new frontMenu(this,true); | |
| setVisible(false); | |
| dispose(); | |
| menu.setVisible(true); | |
| } | |
| private void exitItemActionPerformed(java.awt.event.ActionEvent evt) { | |
| this.dispose(); | |
| } | |
| private void saveItemActionPerformed(java.awt.event.ActionEvent evt) { | |
| try { | |
| export ex = new export(); | |
| // ex.exportTable(); | |
| } catch (Exception e) { | |
| } | |
| } | |
| private void saveasActionPerformed(java.awt.event.ActionEvent evt) { | |
| JFileChooser file = new JFileChooser(); | |
| // file.setFileFilter(new BofFillter()); | |
| file.setAcceptAllFileFilterUsed(false); | |
| int result = file.showSaveDialog(this); | |
| if (result == JFileChooser.APPROVE_OPTION) { | |
| File xfile = file.getSelectedFile(); | |
| String fileName = xfile.toString(); | |
| if (!fileName.toLowerCase().endsWith(".dat")) { | |
| fileName += ".bof"; | |
| } | |
| boolean saved = saveFile(fileName); | |
| if (saved) { | |
| saveLocation = fileName; | |
| } | |
| } | |
| } | |
| private void editMenuActionPerformed(java.awt.event.ActionEvent evt) { | |
| calculationMenu menu = new calculationMenu(); | |
| menu.setVisible(true); | |
| } | |
| private void pbActionPerformed(java.awt.event.ActionEvent evt) { | |
| MessageFormat header = new MessageFormat ("Amortization Summary"); | |
| MessageFormat footer = new MessageFormat ("page(0,number,integer)"); | |
| try{ | |
| rest.print(JTable.PrintMode.NORMAL,header,footer); | |
| }catch(java.awt.print.PrinterException e){ | |
| System.err.format("can not print this",e.getMessage()); | |
| } | |
| } | |
| private void loanTextFieldActionPerformed(java.awt.event.ActionEvent evt) { | |
| } | |
| private boolean saveFile(String filename){ | |
| try{ | |
| try (FileOutputStream file = new FileOutputStream(filename+".docx")) { | |
| ObjectOutputStream objOut = new ObjectOutputStream(file); | |
| objOut.close(); | |
| } | |
| return true; | |
| }catch( FileNotFoundException ex){ | |
| return false; | |
| }catch(IOException ex){ | |
| return false; | |
| } | |
| } | |
| /** | |
| * @param args the command line arguments | |
| */ | |
| public static void main(String args[]) { | |
| /* Set the Nimbus look and feel */ | |
| //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |
| /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. | |
| * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html | |
| */ | |
| try { | |
| for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { | |
| if ("Nimbus".equals(info.getName())) { | |
| javax.swing.UIManager.setLookAndFeel(info.getClassName()); | |
| break; | |
| } | |
| } | |
| } catch (ClassNotFoundException ex) { | |
| java.util.logging.Logger.getLogger(autoLoanMenu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| } catch (InstantiationException ex) { | |
| java.util.logging.Logger.getLogger(autoLoanMenu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| } catch (IllegalAccessException ex) { | |
| java.util.logging.Logger.getLogger(autoLoanMenu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| } catch (javax.swing.UnsupportedLookAndFeelException ex) { | |
| java.util.logging.Logger.getLogger(autoLoanMenu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| } | |
| //</editor-fold> | |
| //</editor-fold> | |
| /* Create and display the form */ | |
| java.awt.EventQueue.invokeLater(() -> { | |
| new autoLoanMenu().setVisible(true); | |
| }); | |
| } | |
| // Variables declaration - do not modify | |
| private javax.swing.JLabel Interestpaid; | |
| private javax.swing.JMenuBar MenuBar; | |
| private javax.swing.JLabel aprLabel; | |
| private javax.swing.JTextField aprTextField; | |
| private javax.swing.JButton backB; | |
| private javax.swing.JButton calculateB; | |
| private javax.swing.JMenuItem editMenu; | |
| private javax.swing.JMenuItem exitItem; | |
| private javax.swing.JTextField extraText; | |
| private javax.swing.JLabel extrapayment; | |
| private javax.swing.JLabel interestLabel; | |
| private javax.swing.JMenu jMenu1; | |
| private javax.swing.JMenu jMenu2; | |
| private javax.swing.JLabel loanLabel; | |
| private javax.swing.JTextField loanTextField; | |
| private javax.swing.JPanel mainPanel; | |
| private javax.swing.JLabel orP; | |
| private javax.swing.JLabel payoff; | |
| private javax.swing.JButton pb; | |
| private javax.swing.JButton resetB; | |
| private javax.swing.JTable rest; | |
| private javax.swing.JLabel resultLabel; | |
| private javax.swing.JPanel resultPanel; | |
| private javax.swing.JMenuItem saveItem; | |
| private javax.swing.JMenuItem saveas; | |
| private javax.swing.JScrollPane tableScrolPane; | |
| private javax.swing.JLabel termLabel; | |
| private javax.swing.JTextField termTextField; | |
| private javax.swing.JLabel titleLabel; | |
| private javax.swing.JLabel yearLabel; | |
| // End of variables declaration | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment