Question

Cannot Find the error in the code.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;

public class GUIBankAcctSorter extends JFrame
{
/* ————————- declarations */

// color objects

Color black = new Color(0, 0, 0);
Color white = new Color(255, 255, 255);
Color light_gray = new Color(192, 192, 192);

// inputs

JLabel depositAmmountJLabel;
JTextField depositAmmountJTextField;

JLabel withdrawAmmountJLabel;
JTextField withdrawAmmountJTextField;

// outputs

JLabel currentBalanceJLabel;
JTextField currentBalanceJTextField;

JLabel currentStatusJLabel;
JTextField currentStatusJTextField;

// controls

JButton enterJButton;
JButton clearJButton;
JButton closeJButton;

// variables

int startingBalance = 0;
Double depositAmmount;
Double withdrawAmmount;
Double currentBalance;
String currentStatus;

// objects classes

DecimalFormat decimalFormat;

public GUIBankAcctSorter()
{
createUserInterface();
}

public void createUserInterface()
{
Container contentPane = getContentPane();
contentPane.setBackground(white);
contentPane.setLayout(null);

//*——————— initialize *

// inputs

depositAmmountJLabel = new JLabel();
depositAmmountJLabel.setBounds(50, 50, 120, 20);
depositAmmountJLabel.setFont(new Font("Default", Font.PLAIN, 12));
depositAmmountJLabel.setText("Deposit Ammount");
depositAmmountJLabel.setForeground(black);
depositAmmountJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(depositAmmountJLabel);

depositAmmountJTextField = new JTextField();
depositAmmountJTextField.setBounds(200, 50, 80, 20);
depositAmmountJTextField.setFont(new Font("Default", Font.PLAIN, 12));
depositAmmountJTextField.setHorizontalAlignment(JTextField.CENTER);
depositAmmountJTextField.setForeground(black);
depositAmmountJTextField.setBackground(white);
depositAmmountJTextField.setEditable(true);
contentPane.add(depositAmmountJTextField);

withdrawAmmountJLabel = new JLabel();
withdrawAmmountJLabel.setBounds(50, 80, 120, 20);
withdrawAmmountJLabel.setFont(new Font("Default", Font.PLAIN, 12));
withdrawAmmountJLabel.setText("Withdraw Ammount");
withdrawAmmountJLabel.setForeground(black);
withdrawAmmountJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(withdrawAmmountJLabel);

withdrawAmmountJTextField = new JTextField();
withdrawAmmountJTextField.setBounds(200, 80, 80, 20);
withdrawAmmountJTextField.setFont(new Font("Default", Font.PLAIN, 12));
withdrawAmmountJTextField.setHorizontalAlignment(JTextField.CENTER);
withdrawAmmountJTextField.setForeground(black);
withdrawAmmountJTextField.setBackground(white);
withdrawAmmountJTextField.setEditable(true);
contentPane.add(withdrawAmmountJTextField);

// outputs

currentBalanceJLabel = new JLabel();
currentBalanceJLabel.setBounds(50, 110, 100, 20);
currentBalanceJLabel.setFont(new Font("Default", Font.PLAIN, 12));
currentBalanceJLabel.setText("Current Balance");
currentBalanceJLabel.setForeground(black);
currentBalanceJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(currentBalanceJLabel);

currentBalanceJTextField = new JTextField();
currentBalanceJTextField.setBounds(200, 110, 80, 20);
currentBalanceJTextField.setFont(new Font("Default", Font.PLAIN, 12));
currentBalanceJTextField.setHorizontalAlignment(JTextField.CENTER);
currentBalanceJTextField.setForeground(black);
currentBalanceJTextField.setBackground(white);
currentBalanceJTextField.setEditable(false);
contentPane.add(currentBalanceJTextField);

currentStatusJLabel = new JLabel();
currentStatusJLabel.setBounds(50, 140, 100, 20);
currentStatusJLabel.setFont(new Font("Default", Font.PLAIN, 12));
currentStatusJLabel.setText("Account Status");
currentStatusJLabel.setForeground(black);
currentStatusJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(currentStatusJLabel);

currentStatusJTextField = new JTextField();
currentStatusJTextField.setBounds(200, 140, 120, 20);
currentStatusJTextField.setFont(new Font("Default", Font.PLAIN, 12));
currentStatusJTextField.setHorizontalAlignment(JTextField.CENTER);
currentStatusJTextField.setForeground(black);
currentStatusJTextField.setBackground(white);
currentStatusJTextField.setEditable(false);
contentPane.add(currentStatusJTextField);

// controls

enterJButton = new JButton();
enterJButton.setBounds(20, 300, 100, 20);
enterJButton.setFont(new Font("Default", Font.PLAIN, 12));
enterJButton.setText("Enter");
enterJButton.setForeground(black);
enterJButton.setBackground(white);
contentPane.add(enterJButton);
enterJButton.addActionListener(

new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
enterJButtonActionPerformed(event);
}
}
);

clearJButton = new JButton();
clearJButton.setBounds(150, 300, 100, 20);
clearJButton.setFont(new Font("Default", Font.PLAIN, 12));
clearJButton.setText("Clear");
clearJButton.setForeground(black);
clearJButton.setBackground(white);
contentPane.add(clearJButton);
clearJButton.addActionListener(

new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
clearJButtonActionPerformed(event);
}
}
);

closeJButton = new JButton();
closeJButton.setBounds(280, 300, 100, 20);
closeJButton.setFont(new Font("Default", Font.PLAIN, 12));
closeJButton.setText("Close");
closeJButton.setForeground(black);
closeJButton.setBackground(white);
contentPane.add(closeJButton);
closeJButton.addActionListener(

new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
closeJButtonActionPerformed(event);
}
}
);

setTitle("bankAccount");
setSize(400, 400);
setVisible(true);
}

// main method

public static void main(String[] args)
{
GUIBankAcctSorter application = new GUIBankAcctSorter();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void enterJButtonActionPerformed(ActionEvent event)
{
getDepositAmmount();
getWithdrawAmount();
}

public void getDepositAmmount()
{
try
{
depositAmmount = Double.parseDouble(depositAmmountJTextField.getText());
getWithdrawAmount();
}
catch(NumberFormatException exception)
{
JOptionPane.showMessageDialog(this,
"Please enter a deposit amount!",
"Number format Error", JOptionPane.ERROR_MESSAGE);
depositAmmountJTextField.setText("");
depositAmmountJTextField.requestFocusInWindow();
}
}

public void getWithdrawAmount()
{
try
{
withdrawAmmount = Double.parseDouble(withdrawAmmountJTextField.getText());
getCurrentBalance();
}
catch(NumberFormatException exception)
{
JOptionPane.showMessageDialog(this,
"Please enter a withdraw amount!",
"Number format Error", JOptionPane.ERROR_MESSAGE);
withdrawAmmountJTextField.setText("");
withdrawAmmountJTextField.requestFocusInWindow();
}
}

public void getCurrentBalance()
{
currentBalance = withdrawAmmount + startingBalance;
displayCurrentBalance();
} // for withdraw*/

public void getCurrentBalance()
{
currentBalance = startingBalance + depositAmmount – withdrawAmmount;
displayCurrentBalance();
}

public void displayCurrentBalance()
{
decimalFormat = new DecimalFormat("$0.00");
currentBalanceJTextField.setText("" + decimalFormat.format(currentBalance));
getCurrentStatus();
}

public void getCurrentStatus()
{
if(currentBalance > 0 )
{
currentStatus = "Sufficient Funds";
}
else if (currentBalance <= 0)
{
currentStatus = "Insufficient Funds";
}

currentStatusJTextField.setText("" + currentStatus);
displayCurrentStatus();
}

public void displayCurrentStatus()
{
currentStatusJTextField.setText("" + currentStatus);
}

public void getWithdrawAmmount()
{
try
{
withdrawAmmount = Integer.parseInt(withdrawAmmountJTextField.getText());
//getWithdrawAmmount();
}
catch(NumberFormatException exception)
{
JOptionPane.showMessageDialog(this,
"Please enter a number!",
"Number format Error", JOptionPane.ERROR_MESSAGE);
withdrawAmmountJTextField.setText("");
withdrawAmmountJTextField.requestFocusInWindow(); }
}

public void clearJButtonActionPerformed(ActionEvent event)
{
depositAmmountJTextField.setText("");
withdrawAmmountJTextField.setText("");
}

public void closeJButtonActionPerformed(ActionEvent event)
{
GUIBankAcctSorter.this.dispose();
}
}

Solutions

Expert Solution
No answers


Submit Your Answer