Can't get Input Fields to show in GUI
Hey guys... I am working on an assignment and can't seem to get my input fields to show up on my GUI. The program compiles with no errors, but it's not working correctly. I've looked over it for 2 days now. Think one of you could take a look and see what's wrong? Thanks!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField.*;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
publicclass MortgageCalculator1extends JFrameimplements ActionListener
{
double rate = 0;//APR
double monthlyPayment = 0;//Monthly payment amount
double principle = 0;//Amount of loan
int term = 0;//Mortgage term in years
double interest = 0;//Interest, in months
int notePeriod = 0;//Mortgage term in months
JPanel row1 =new JPanel();// Set up boxes to label Items
Label mortgage_label =new JLabel("MORTGAGE CALCULATOR", JLabel.CENTER);
JPanel row2 =new JPanel(new GridLayout(1, 2));
JLabel principle_label =new JLabel("Mortgage Principal $",JLabel.LEFT);
JTextField principle_txt =new JTextField(10);
JPanel row3 =new JPanel(new GridLayout(1, 2));
JLabel term_label =new JLabel("Mortgage Term (Yrs)",JLabel.LEFT);
JTextField term_txt =new JTextField(10);
JPanel row4 =new JPanel(new GridLayout(1, 2));
JLabel rate_label =new JLabel("Interest Rate (%)", JLabel.LEFT);
JTextField rate_txt =new JTextField(10);
JPanel row5 =new JPanel(new GridLayout(1, 2));
JLabel monthlyPayment_label =new JLabel("Monthly Payment $", JLabel.LEFT);
JTextField monthlyPayment_txt =new JTextField(10);
//Create Buttons
JPanel button =new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 10));
JButton clearButton =new JButton("Clear");
JButton exitButton =new JButton("Exit");
JButton calculateButton =new JButton("Calculate");
public MortgageCalculator1()
{
super ("Mortgage Payment Calculator");
setSize(450, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = getContentPane();
Border rowborder =new EmptyBorder( 3, 10, 3, 10 );
//Pane and row properties
pane.add(row1);
row1.add(mortgage_label);
row1.setMaximumSize(new Dimension( 10000, row1.getMinimumSize().height));
row1.setBorder( rowborder);
pane.add(row2);
row2.add(principle_label);
row2.add(principle_txt);
row2.setMaximumSize(new Dimension( 10000, row2.getMinimumSize().height));
row2.setBorder( rowborder);
pane.add(row3);
row3.add(term_label);
row3.add(term_txt);
row3.setMaximumSize(new Dimension( 10000, row3.getMinimumSize().height));
row3.setBorder( rowborder);
pane.add(row4);
row4.add(rate_label);
row4.add(rate_txt);
row4.setMaximumSize(new Dimension( 10000, row4.getMinimumSize().height));
row4.setBorder( rowborder);
pane.add(row5);
row5.add(monthlyPayment_label);
row5.add(monthlyPayment_txt);
monthlyPayment_txt.setEnabled(false);//set payment amount uneditable
row5.setMaximumSize(new Dimension( 10000, row5.getMinimumSize().height));
row5.setBorder( rowborder);
button.add(calculateButton);
button.add(clearButton);
button.add(exitButton);
pane.add(button);
button.setMaximumSize(new Dimension( 10000, button.getMinimumSize().height));
clearButton.addActionListener(this);//Add Listeners
exitButton.addActionListener(this);
calculateButton.addActionListener(this);
}
publicvoid actionPerformed(ActionEvent event)
{
Object command = event.getSource();
String arg = event.getActionCommand();
if (command == calculateButton)
{
try
{
// user input
rate = Double.parseDouble(rate_txt.getText());
principle = Double.parseDouble(principle_txt.getText()) term = Integer.parseInt(term_txt.getText());
// monthly interest rate
interest = ((rate / 100) / 12);
// total number of payments
notePeriod = term * 12;// (for example, 5 years means notePeriod = 60)
// monthly payment
if (rate == 0.0)
{
monthlyPayment = principle / notePeriod;
}
else
{
monthlyPayment = (principle * interest) / (1 - Math.pow(1 + interest, -notePeriod));
}
NumberFormat myCurrencyFormatter;
myCurrencyFormatter = NumberFormat.getCurrencyInstance(Locale.US);
monthlyPayment_txt.setText(myCurrencyFormatter.format(monthlyPayment));
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Invaild Entry! Please Try Again","ERROR", JOptionPane.ERROR_MESSAGE);
}
}
if(command == clearButton)
{
principle_txt.setText(null);
term_txt.setText(null);
rate_txt.setText(null);
monthlyPayment_txt.setText(null);
}
if(command == exitButton)
{
System.exit(0);
}
}
publicstaticvoid main (String[] arguments)//Main Method
{
MortgageCalculator1 smc =new MortgageCalculator1();
smc.setVisible(true);
smc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

