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