📄 interest.java
字号:
/*
* 创建日期 2006-1-26
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package ch4;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
public class Interest extends JFrame{
private JLabel amountLabel;
private JLabel annualRateLabel;
private JLabel periodLabel;
private JTextField amountText;
private JTextField annualRateText;
private JTextField periodText;
private JTextArea text1;
private JButton btnShow;
private JButton btnClear;
private JButton btnClearInputField;
public Interest() {
createComponents();
registerEventHandlers();
layoutComponents();
setTitle("复利存款应用程序");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
private void createComponents() { //组件实例化
amountLabel=new JLabel("本金");
annualRateLabel=new JLabel("年利率");
periodLabel=new JLabel("年 数");
amountText=new JTextField(10);
annualRateText=new JTextField(10);
periodText=new JTextField(10);
text1 = new JTextArea();
btnClear=new JButton("清除");
btnShow = new JButton("计算");
}
private void registerEventHandlers() { //注册事件
btnShowActionEventHander hander1=new btnShowActionEventHander();
btnShow.addActionListener(hander1);
btnClearActionEventHander hander2=new btnClearActionEventHander();
btnClear.addActionListener(hander2);
}
private void layoutComponents() { //布局
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
//存放文本框和标签
JPanel loanAmountPane = new JPanel();
loanAmountPane.add(amountLabel);
loanAmountPane.add(amountText);
//存放文本框和标签
JPanel annualRatePane = new JPanel();
annualRatePane.add(annualRateLabel);
annualRatePane.add(annualRateText);
//存放文本框和标签
JPanel loanPeriodPane = new JPanel();
loanPeriodPane.add(periodLabel);
loanPeriodPane.add(periodText);
//存放按钮
JPanel buttonPane = new JPanel();
buttonPane.add(btnShow);
buttonPane.add(btnClear);
//存放文本框和按钮
JPanel leftPane = new JPanel(new GridLayout(4,1));
leftPane.add(loanAmountPane);
leftPane.add(annualRatePane);
leftPane.add(loanPeriodPane);
leftPane.add(buttonPane);
JScrollPane scrollPane=new JScrollPane(text1);
scrollPane.setPreferredSize(new Dimension(200,150));
c.add(leftPane);
c.add(scrollPane);
}
private class btnShowActionEventHander implements ActionListener{
public void actionPerformed(ActionEvent e) {
double amount , principal ;
double rate ;
int n ;
String output = "年" + "\t"+ "复利存款" + "\n";
int year = 1;
NumberFormat currencyformatter=NumberFormat.getCurrencyInstance();
principal = Double.parseDouble(amountText.getText());
rate =Double.parseDouble(annualRateText.getText());
n = Integer.parseInt(periodText.getText());
do{
amount = principal * Math.pow(1 + rate, year);
output += year +"\t" + currencyformatter.format(amount)+ "\n";
year = year + 1;
}while(year <= n);
text1.setText(output);
}
}
private class btnClearActionEventHander implements ActionListener{
public void actionPerformed(ActionEvent e) {
amountText.setText("");
annualRateText.setText("");
periodText.setText("");
text1.setText("");
}
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
Interest frame=new Interest();
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -