Re: Total not displaying in JTextArea
ButtonNovice wrote:
Hello,
I am getting an error that I think means that the total can not find
the text area that it needs to display. The error reads;
java:180: cannot find symbol
symbol : variable totalJTextArea
location: class help
totalJTextArea.setText(currency.format(total));
// here is the code
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;
public class help extends JFrame
{
//JLabel for business name
private JLabel businessNameJLabel;
// JLabel and JTextField for balance
private JLabel balanceJLabel;
private JTextField balanceJTextField;
// JLabel and JTextField for interest
private JLabel interestJLabel;
private JTextField interestJTextField;
// JLabel and JTextField for years
private JLabel yearsJLabel;
private JTextField yearsJTextField;
// JLabel and JTextField for total
private JLabel totalJLabel;
private JTextField totalJTextField;
// JButton to initiate calculation
private JButton calculateJButton;
// no-argument constructor
public help()
{
createUserInterface();
}
// create and position GUI components
public void createUserInterface()
{
// get content pane and set its layout
Container container = getContentPane();
container.setLayout( null );
// set up businessNameJLabel
businessNameJLabel = new JLabel();
businessNameJLabel.setText( "Calulator" );
businessNameJLabel.setLocation( 35, 20 );
businessNameJLabel.setSize( 550, 88 );
businessNameJLabel.setFont( new Font( "SansSerif", Font.PLAIN, 36
) );
businessNameJLabel.setHorizontalAlignment( JLabel.CENTER );
container.add( businessNameJLabel );
// set up balanceJLabel
balanceJLabel = new JLabel();
balanceJLabel.setBounds( 26, 170, 134, 21 );
balanceJLabel.setText( "Balance:" );
container.add( balanceJLabel );
// set up balanceJTextField
balanceJTextField = new JTextField();
balanceJTextField.setBounds( 120, 170, 40, 21 );
balanceJTextField.setText( "" );
container.add( balanceJTextField );
// set up interestJLabel
interestJLabel = new JLabel();
interestJLabel.setBounds( 26, 200, 130, 21 );
interestJLabel.setText( "Interest:" );
container.add( interestJLabel );
// set up interestJTextField
interestJTextField = new JTextField();
interestJTextField.setBounds( 120, 200, 220, 21 );
interestJTextField.setText( "" );
container.add( interestJTextField );
// set up yearsJLabel
yearsJLabel = new JLabel();
yearsJLabel.setBounds( 26, 230, 120, 21 );
yearsJLabel.setText( "Years:" );
container.add( yearsJLabel );
// set up yearsJTextField
yearsJTextField = new JTextField();
yearsJTextField.setBounds( 120, 230, 220, 21 );
yearsJTextField.setText( "" );
container.add( yearsJTextField );
// set up totalJLabel
totalJLabel = new JLabel();
totalJLabel.setBounds( 260, 510, 134, 21 );
totalJLabel.setText( "Total:" );
container.add( totalJLabel );
// set up totalJTextField
totalJTextField = new JTextField();
totalJTextField.setBounds( 360, 510, 60, 21 );
totalJTextField.setText( "$0.00" );
totalJTextField.setEditable( false );
totalJTextField.setHorizontalAlignment( JTextField.CENTER );
container.add( totalJTextField );
// set up calculateJButton
calculateJButton = new JButton();
calculateJButton.setBounds( 335, 550, 90, 24 );
calculateJButton.setText( "Calculate" );
container.add( calculateJButton );
calculateJButton.addActionListener(
new ActionListener()
{
public void actionPerformed (ActionEvent event)
{
calculateJButtonActionPerformed (event);
}
}
);
// set properties of application's window
setTitle( "Calulator" ); // set title bar text
setSize( 650, 650 ); // set window size
setVisible( true ); // display window
} // end method createUserInterface
// calculate total of order
private void calculateJButtonActionPerformed ( ActionEvent event )
{
// declare
//String amount = balanceJTextField.getText();
//String interest = interestJTextField.getText();
//String years = yearsJTextField.getText();
// display error message if no name entered or
// no JCheckBox is selected
//if ( ( balance.equals( "" ) ) ||
//( ( interest.equals( "" ) ) ||
//( ( years.equals( "" ) ) ) ) )
//{
// display error message
//JOptionPane.showMessageDialog( null,
// "Please enter a Balance, Interest, and Years.",
//"Missing Information", JOptionPane.ERROR_MESSAGE );
// }
//try // otherwise, do calculations
//{
int amount =
Integer.parseInt(balanceJTextField.getText());
int interest =
Integer.parseInt(interestJTextField.getText());
int interestYears = ( interest / 100 );
int years =
Integer.parseInt(yearsJTextField.getText());
double monthlyInt = (interestYears / 12);
double paymentCount = ( years * 12 );
double total = amount * ( monthlyInt / (1. -
Math.pow(1. + monthlyInt, - paymentCount)));
//double bal = new
Double(balString).doubleValue();
// double intyr = new Double(intString).doubleValue() /
100.;
//short nyears = (short)new
Integer(nyrString).intValue();
//double intmo = intyr / 12.;
//int npmts = nyears * 12;
//double pmt = bal * (intmo / (1. - Math.pow(1. +
intmo,-npmts)));
DecimalFormat currency = new DecimalFormat("$0.00");
// Format output
totalJTextArea.setText(currency.format(total));
// Output payment amount
//}
//catch (NumberFormatException ex){}
}
// main method
public static void main( String[] args )
{
help application = new help();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
} // end method main
} // end class orderForm
Thanks in advance,
Mike
It's because the variable is named totalJTextField, not totalJTextArea,
I *highly* recommend you get a good IDE like Eclipse, as it will show
you exactly what is wrong as you are editing. Eclipse is totally free,
so there's no reason not to get it.