-1

I am confused on how to do this step for my getAmount method

This method should read the amount in one of the JTextFields and convert the field entry to a number. (I think i did this step correctly)

Although a NumberFormatException will occur in this method when a non‐numeric field entry is converted to a double, the method cannot process the exception since it does not know which transaction is being processed. However, the method must catch the NumberFormatException so that a runtime error does not occur with error messages being displayed in the DOS window. The catch block must throw the exception that it catches. This is an example of rethrowing an exception. The Java runtime creates the exception and throws it but the method that catches it does not have enough information to process the exception so it throws it to the method that calls it.

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


public class AccountApplet extends JApplet implements ActionListener
{    
  //  For West
  public JLabel  ai       = new JLabel("Account ID ");
  public JTextField  aitf = new JTextField();
  public JLabel  ab       = new JLabel("Account Balance ");
  public JTextField  abtf = new JTextField();

  //  For East
  public JButton     dp   = new JButton ("Deposit");
  public JTextField  dptf = new JTextField();
  public JButton       wt = new JButton ("Withdraw");
  public JTextField  wttf = new JTextField();

  // For South
  public JLabel  status   = new JLabel("placeholder");  


  public void init()
  {
    this.setSize(400, 90);

    //----------------------
    //  Set up the Structure
    //----------------------

    Container      c = getContentPane();
    JPanel         b = new JPanel(new BorderLayout());
    JPanel      west = new JPanel(new GridLayout(2,2));
    JPanel      east = new JPanel(new BorderLayout());
    JPanel depo_with = new JPanel(new GridLayout(2,2));



    // Add BorderLayout to the container
    c.add(b);

    // Add everything to West
    b.add(west, BorderLayout.WEST);


    west.setBorder(new TitledBorder("Display Account Information"));
    west.add(ai);
    west.add(aitf);
    aitf.setEditable(false);
    west.add(ab);
    west.add(abtf);
    abtf.setEditable(false);

    // Add everything to EAST
    b.add(east, BorderLayout.EAST);

    east.setBorder(new TitledBorder("Deposit or Withdrawl Funds"));

    east.add(depo_with, BorderLayout.EAST);

    depo_with.add(dptf);
    depo_with.add(dp);
    depo_with.add(wttf);
    depo_with.add(wt);

    dp.addActionListener(this);
    wt.addActionListener(this);

    // Add everything to SOUTH
    b.add(status, BorderLayout.SOUTH);

    refreshFields();






  }  // End intit

  public void actionPerformed(ActionEvent e)
  {

    if (e.getSource() == dp)  //  Executes if deposit was clicked
    {
      //getAmount(dptf);
      status.setText("Deposit processed");

    }    

    if (e.getSource() == wt)  //  Executes if withdraw was clicked
    {
      //getAmount(wttf);
      status.setText("Withdraw processed");
    }
  }  // End actionPerformed

  public void refreshFields()
  {
    NumberFormat fmt = NumberFormat.getCurrencyInstance();
    Account Account1 = new Account(1234, 1000.00);
    aitf.setText("" + Account1.getId());
    abtf.setText("" + fmt.format(Account1.getBalance()));
    // diplays accound id and balance in left text fields
    //should be called when the applet is first displayed and after each valid transaction
  }

  public double getAmount(JTextField tf) throws EmptyFieldException,
                                                NumberFormatException,
                                                NegativeAmountException
  {

  double withdraw = Double.parseDouble(dptf.getText());



  // Next step


    return withdraw;
  }  //  End getAmount


} // End Class
HoodCoolege
  • 113
  • 7
  • 1
    Is all this code necessary to demonstrate your issue? Please read and provide a [MCVE]. – Savior Apr 26 '16 at 16:23
  • 1
    What's your question? I don't see a `catch` block anywhere in this code. And if the method in question can't actually handle the exception in any meaningful way, it has no business catching the exception. – David Apr 26 '16 at 16:28
  • I am brand new to exceptions/try/catch etc – HoodCoolege Apr 26 '16 at 16:29

1 Answers1

0

Is that what you looking for:

public double getAmount(JTextField tf) throws EmptyFieldException,
                                            NumberFormatException,
                                            NegativeAmountException
{
    double withdraw;
    // try to parse 
    try {
        withdraw = Double.parseDouble(dptf.getText());
    } catch (Exception e) {
        // catch exception and do something about it  
        throw e;
    }
    // Next step

    return withdraw;
}  //  End
alpert
  • 4,500
  • 1
  • 17
  • 27