Java Reference
In-Depth Information
17
18
19
public
LoanCalculator() {
// Panel p1 to hold labels and text fields
JPanel p1 =
new
JPanel(
new
GridLayout(
5
,
2
));
20
21 p1.add(
new
JLabel(
"Annual Interest Rate"
));
22 p1.add(jtfAnnualInterestRate);
23 p1.add(
new
JLabel(
"Number of Years"
));
24 p1.add(jtfNumberOfYears);
25 p1.add(
new
JLabel(
"Loan Amount"
));
26 p1.add(jtfLoanAmount);
27 p1.add(
new
JLabel(
"Monthly Payment"
));
28 p1.add(jtfMonthlyPayment);
29 p1.add(
new
JLabel(
"Total Payment"
));
30 p1.add(jtfTotalPayment);
31 p1.setBorder(
new
32 TitledBorder(
"Enter loan amount, interest rate, and years"
));
33
34
create UI
// Panel p2 to hold the button
add to frame
35
36 p2.add(jbtComputeLoan);
37
38
// Add the panels to the frame
39 add(p1, BorderLayout.CENTER);
40 add(p2, BorderLayout.SOUTH);
41
42
JPanel p2 =
new
JPanel(
new
FlowLayout(FlowLayout.RIGHT));
// Register listener
43
44 }
45
46
jbtComputeLoan.addActionListener(
new
ButtonListener());
register listener
/** Handle the Compute Payment button */
47
48 @Override
49
public void
actionPerformed(ActionEvent e) {
50
// Get values from text fields
51
double
interest =
52 Double.parseDouble( );
53
int
year = Integer.parseInt(jtfNumberOfYears.getText());
54
double
loanAmount =
55 Double.parseDouble(jtfLoanAmount.getText());
56
57
private class
ButtonListener
implements
ActionListener {
get input
jtfAnnualInterestRate.getText()
// Create a loan object. Loan defined in Listing 10.2
Loan loan =
new
Loan(interest, year, loanAmount);
create loan
58
59
60
// Display monthly payment and total payment
61
62
63 jtfTotalPayment.setText(String.format(
"%.2f"
,
64 loan.getTotalPayment()));
65 }
66 }
67
68
public static void
main(String[] args) {
69 LoanCalculator frame =
new
LoanCalculator();
70 frame.pack();
71 frame.setTitle(
"LoanCalculator"
);
72 frame.setLocationRelativeTo(
null
);
// Center the frame
73 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
74 frame.setVisible(
true
);
75 }
76 }
jtfMonthlyPayment.setText(String.format(
"%.2f"
,
set result
loan.getMonthlyPayment()));