⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exam4.java

📁 java程序设计导论(daniel liang著) 所有偶数课后习题答案
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import java.text.*;

public class Exam4 extends JApplet {
  JPanel jPanel1 = new JPanel();
  JLabel jLabel1 = new JLabel();

  JTextField jtfLoanAmount = new JTextField();
  JLabel jLabel2 = new JLabel();
 
  JTextField jtfNumberOfYears = new JTextField();
  JLabel jLabel3 = new JLabel();
  JTextField jftAnnualInterestRate = new JTextField();
  JButton jbtLoanSchedule = new JButton();
  TitledBorder titledBorder1;
  JScrollPane jScrollPane1 = new JScrollPane();

  DefaultTableModel tableModel = new DefaultTableModel();

  JTable jtbLoanSchedule = new JTable(tableModel);
  JPanel jPanel2 = new JPanel();
  BorderLayout borderLayout1 = new BorderLayout();
  GridLayout gridLayout1 = new GridLayout();

  /**Construct the applet*/
  public Exam4() {
    titledBorder1 = new TitledBorder("");
    this.setSize(new Dimension(705, 399));
    jLabel1.setText("Loan Amount");
    jLabel2.setText("Number of Years");
    jLabel3.setText("Annual Interest Rate");
    jbtLoanSchedule.setText("Display Loan Schedule");
    jbtLoanSchedule.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jbtLoanSchedule_actionPerformed(e);
      }
    });
    jPanel1.setLayout(gridLayout1);
    jPanel1.setBorder(titledBorder1);
    titledBorder1.setTitle("Enter Loan Amount, Number of Years, and Annual Interest Rate");
    jPanel2.setLayout(borderLayout1);
    gridLayout1.setRows(3);
    gridLayout1.setColumns(2);
    this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
    this.getContentPane().add(jPanel2, BorderLayout.NORTH);
    jPanel2.add(jbtLoanSchedule, BorderLayout.EAST);
    jPanel2.add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jLabel1, null);
    jPanel1.add(jtfLoanAmount, null);
    jPanel1.add(jLabel2, null);
    jPanel1.add(jtfNumberOfYears, null);
    jPanel1.add(jLabel3, null);
    jPanel1.add(jftAnnualInterestRate, null);
    jScrollPane1.getViewport().add(jtbLoanSchedule, null);

    

  jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);
  jtfNumberOfYears.setHorizontalAlignment(JTextField.RIGHT);
  jftAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);
    tableModel.setColumnIdentifiers(new String[]{"Payment#",
      "Interest", "Principal", "Balance"});
  }

  void jbtLoanSchedule_actionPerformed(ActionEvent e) {
    // Obtain loan amount, annual interest rate, and number of years
    double loanAmount =
      Double.parseDouble(jtfLoanAmount.getText().trim());
    
    double annualInterestRate =
      Double.parseDouble(jftAnnualInterestRate.getText().trim());
    int numOfYears =
      Integer.parseInt(jtfNumberOfYears.getText().trim());

    // Obtain monthly interest rate
    double monthlyInterestRate = annualInterestRate / 1200;

    // Compute mortgage
    double monthlyPayment = loanAmount * monthlyInterestRate /
      (1 - (Math.pow(1 / (1 + monthlyInterestRate), numOfYears * 12)));

    double balance = loanAmount;
    double interest;
    double principal;
    NumberFormat currencyForm = NumberFormat.getCurrencyInstance();
  
    tableModel.setRowCount(0);

    int i;
    for (i = 1; i <= numOfYears * 12; i++) {
      interest = monthlyInterestRate * balance;
      principal = monthlyPayment - interest;
      balance -= principal;
      tableModel.addRow(new Object[]{new Integer(i),
        currencyForm.format(interest),
        currencyForm.format(principal),
        currencyForm.format(balance)});
    }
  }

  public static void main(String[] args) {
    Exam4 applet = new Exam4();
    JFrame frame = new JFrame();
    //EXIT_ON_CLOSE == 3
    frame.setDefaultCloseOperation(3);
    frame.setTitle("Test");
    frame.getContentPane().add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(400,320);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2,
                      (d.height - frame.getSize().height) / 2);
    frame.setVisible(true);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -