Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Devaka Cooray
Sheriffs:
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
Bartenders:
  • Carey Brown
  • Roland Mueller

help... I need a field to fill in

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
I have my program working while I am using the drop down menue, However I want to be able to select the JCheckBox and it will allow me to enter any amounts and it will do the math and fill in the monthly payment and the chart. here is my program:

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
import java.math.*;

public class scroll2t extends JFrame implements ActionListener, ItemListener

{//Beginning of Program

// Fields for Principle
JPanel row1 = new JPanel();
JLabel dollar = new JLabel("How much are you borrowing?");
JTextField money = new JTextField(" ", 15);

// Fields for Term and Rate
JPanel row2 = new JPanel();
JLabel choice = new JLabel("Select Year & Rate:");
JCheckBox altchoice = new JCheckBox("Alt. Method");
JTextField YR = new JTextField(" ", 4);
JTextField RT = new JTextField(" ", 4);

//Jcombobox R=rate,Y=year
String[] RY =
{"7 years at 5.35%", "15 years at 5.5 %", "30 years at 5.75%", " "};
JComboBox mortgage = new JComboBox(RY);

// Fields for Payment
JPanel row3 = new JPanel();
JLabel payment = new JLabel("Your monthly payment will be:");
JTextField owe = new JTextField(" ", 15);

//Scroll Pane and Text Area
JPanel row4 = new JPanel();
JLabel amortization = new JLabel("Amortization:");
JTextArea chart = new JTextArea(" ", 7, 22);
JScrollPane scroll = new JScrollPane(chart,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
StringBuffer amt = new StringBuffer();
Container pane = getContentPane();
FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
JButton Cal = new JButton("Calculate");
public scroll2t()
{ //Start of JFrame

// Title and Exit of JFrame
super("Q's Mortgage and Amortization Calculator");
setSize(475, 328);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//JFrame layout


pane.setLayout(flow);

//Input output fields added to JFrame
row1.add(dollar);
row1.add(money);
pane.add(row1);
mortgage.setSelectedIndex(3);
mortgage.addActionListener(this);
row2.add(altchoice);
altchoice.addItemListener(this);
row2.add(choice);
YR.setEditable(false);
RT.setEditable(false);
row2.add(YR);
row2.add(RT);
row2.add(mortgage);
pane.add(row2);
row3.add(payment);
row3.add(owe);
pane.add(row3);
owe.setEditable(false);

//Scroll Pane added to JFrame
row4.add(amortization);
chart.setEditable(false);
row4.add(scroll);
pane.add(row4);

//Executable Button- Clear,Exit, Calculate
JPanel row5 = new JPanel();
JButton clear = new JButton("Clear");
clear.addActionListener(this);
row5.add(clear);
pane.add(row5);

JButton exit = new JButton("Exit");
exit.addActionListener(this);
row5.add(exit);

Cal.setEnabled(false);
row5.add(Cal);
pane.add(row5);

//Column Titles for Text Area

amt.append("Pmt#\tPrincipal\tInterest\tBalance\n");
chart.setText(amt.toString());
setContentPane(pane);
setVisible(true);
} //End of JFrame
public void itemStateChanged(ItemEvent ie)
{
int status = ie.getStateChange();
if (status == ItemEvent.SELECTED)
{
mortgage.setEnabled(false);
YR.setEditable(true);
RT.setEditable(true);
Cal.setEnabled(true);
}
else
{
mortgage.setEnabled(true);
YR.setEditable(false);
RT.setEditable(false);
Cal.setEnabled(false);

}
}
public void actionPerformed(ActionEvent ae)//Calculations and Button executions
{ //Start actionPerformed

String command = ae.getActionCommand();
// Exit program
if (command == "Exit")System.exit(0);

//Define variables loan1 //Define loan2
double Principal = 0; int Year2 = 15;
int Year = 7; double Rate2 = 0.055;
double Rate = 0.0535; int Year3 = 30;
double Interest = 0; double Rate3 = 0.0575;
double Monthly = 0;
NumberFormat currency =
NumberFormat.getCurrencyInstance();

// Cal button
if (command== "Calculate")
{
int y = Integer.parseInt(YR.getText());
double r = Double.parseDouble(RT.getText())/1200;
double P = Double.parseDouble(money.getText());
double In = r / 100 / 12.0;
double M = P * (In / (1 - Math.pow(In + 1, -12.0 * y)));
owe.setText(currency.format(Double.toString(M)));
for (int i=0; i<y*12; i++)
{
double interestAccrued=Principal*Interest;
double principalPaid=Monthly-interestAccrued;
amt.append(i+1 + "\t" +currency.format(principalPaid)
+ "\t" + currency.format(interestAccrued)
+ "\t" + currency.format(Principal) + "\n");
chart.setText(amt.toString());
Principal=Principal+interestAccrued-Monthly;
}

}
// Clear fields
if (command == "Clear")
{
Principal = 0.0F;
money.setText(null);
mortgage.setSelectedIndex(3);
owe.setText(null);
chart.setText(null);
}
// check box

//Execute Combo Array 0
if(mortgage.getSelectedIndex()==0)
{
//mortgage.setSelectedIndex(0);
mortgage.getSelectedItem().toString();
Principal = Double.parseDouble(money.getText());
Interest = Rate / 12.0;
Monthly = Principal * (Interest / (1 - Math.pow(Interest + 1, -12.0 * Year)));
owe.setText(currency.format(Monthly));
for (int i=0; i<Year*12; i++)
{
double interestAccrued=Principal*Interest;
double principalPaid=Monthly-interestAccrued;
amt.append(i+1 + "\t" +currency.format(principalPaid)
+ "\t" + currency.format(interestAccrued)
+ "\t" + currency.format(Principal) + "\n");
chart.setText(amt.toString());
Principal=Principal+interestAccrued-Monthly;
}

}
//Execute Combo Array 1
if(mortgage.getSelectedIndex()==1)
{
//mortgage.setSelectedIndex(1);
mortgage.getSelectedItem().toString();
Principal = Double.parseDouble(money.getText());
Interest = Rate2 / 12.0;
Monthly = Principal * (Interest / (1 - Math.pow(Interest + 1, -12.0 * Year2)));
owe.setText(currency.format(Monthly));
for (int i=0; i<Year2*12; i++)
{
double interestAccrued=Principal*Interest;
double principalPaid=Monthly-interestAccrued;
amt.append(i+1 + "\t" +currency.format(principalPaid)
+ "\t" + currency.format(interestAccrued)
+ "\t" + currency.format(Principal) + "\n");
chart.setText(amt.toString());
Principal=Principal+interestAccrued-Monthly;
}
}
//Execute Combo Array 2
if(mortgage.getSelectedIndex()==2)
{
//mortgage.setSelectedIndex(2);
mortgage.getSelectedItem().toString();
Principal = Double.parseDouble(money.getText());
Interest = Rate3 / 12.0;
Monthly = Principal * (Interest / (1 - Math.pow(Interest + 1, -12.0 * Year3)));
owe.setText(currency.format(Monthly));
for (int i=0; i<Year3*12; i++)
{
double interestAccrued=Principal*Interest;
double principalPaid=Monthly-interestAccrued;
amt.append(i+1 + "\t" +currency.format(principalPaid)
+ "\t" + currency.format(interestAccrued)
+ "\t" + currency.format(Principal) + "\n");
chart.setText(amt.toString());
Principal=Principal+interestAccrued-Monthly;
}
}

} //End actionPerformed

public static void main(String args[])throws IOException
{
scroll2 Calc = new scroll2();
}
}
 
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Round these parts, posting the same question in multiple forums is bad practice. It can make it rather difficult to follow a conversation, plus folks spend time saying things that were just said.

Please continue in the duplicate post in the Swing / JFC / AWT forum.
 
It's just like a fortune cookie, but instead of a cookie, it's pie. And we'll call it ... tiny ad:
We need your help - Coderanch server fundraiser
https://coderanch.com/wiki/782867/Coderanch-server-fundraiser
    Bookmark Topic Watch Topic
  • New Topic