代码如下:
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class main extends JFrame implements ActionListener, ItemListener {
private String msg[] = { "复利计算", "单利计算", "本金计算", "求期限", "求利率", "投资计算" };
Graphics g;
private JButton JBfind = new JButton("确认");
private JButton JBclearMsg = new JButton("清除信息");
private Container con;
private JComboBox<Object> JCBStart;
private JComboBox<Object> JCBEnd;
JTextField jP = new JTextField();
JTextField ji = new JTextField();
JTextField jn = new JTextField();
JTextField jm = new JTextField("1");
JTextField jF = new JTextField();
JLabel j1 = new JLabel("本金");
JLabel j2 = new JLabel("利率");
JLabel j3 = new JLabel("期限");
JLabel j4 = new JLabel("次数");
JLabel j5 = new JLabel("终值");
JLabel ti = new JLabel("复利计算器");
/**
* @param args
*/
public main() {
con = this.getContentPane();
// 选择框
JCBStart = new JComboBox<Object>(msg);
JCBStart.setEditable(false);// 不可编辑
JCBStart.setBounds(10, 170, 135, 30);
// 为选择框添加监听
// JCBStart.addItemListener(this);
// JCBEnd.addItemListener(this);
// 按钮位置,大小
JBfind.setBounds(220, 420, 90, 30);
JBclearMsg.setBounds(320, 420, 90, 30);
// 添加动作监听
JBfind.addActionListener(this);
JBclearMsg.addActionListener(this);
// 文字及显示面板
jP.setBounds(220, 170, 220, 30);
ji.setBounds(220, 220, 220, 30);
jn.setBounds(220, 270, 220, 30);
jm.setBounds(220, 320, 220, 30);
jF.setBounds(220, 370, 220, 30);
j1.setBounds(180, 170, 30, 30);
j2.setBounds(180, 220, 30, 30);
j3.setBounds(180, 270, 30, 30);
j4.setBounds(180, 320, 30, 30);
j5.setBounds(180, 370, 30, 30);
ti.setBounds(300, 50, 100, 100);
// 显示信息
// 设置容器
con.setLayout(null);
con.setSize(600, 600);
con.setLocation(0, 0);
// 把组件添加到容器中
con.add(JCBStart);
con.add(JBfind);
con.add(JBclearMsg);
con.add(jF);
con.add(ji);
con.add(jm);
con.add(jn);
con.add(jP);
con.add(j1);
con.add(j2);
con.add(j3);
con.add(j4);
con.add(j5);
con.add(ti);
this.setSize(600, 600);
this.setLocation(300, 300);
this.setResizable(false); // 窗体大小不可变
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗体结束程序
this.setVisible(true);// 显示窗体;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new main();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand().equals("确认")) {
double P=0;
double i=0;
double n=0;
double m=0;
double F=0;
String select = (String) JCBStart.getSelectedItem();
if (select == "复利计算") {
P = Double.valueOf(jP.getText().toString()).doubleValue();
i = Double.valueOf(ji.getText().toString()).doubleValue();
n = Double.valueOf(jn.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
F = P * (Math.pow((1 + i / m), n * m));
jF.setText(Double.toString(F));
} else if (select == "单利计算") {
P = Double.valueOf(jP.getText().toString()).doubleValue();
i = Double.valueOf(ji.getText().toString()).doubleValue();
n = Double.valueOf(jn.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
F = P * (1 + i * n);
jF.setText(Double.toString(F));
} else if (select == "本金计算") {
i = Double.valueOf(ji.getText().toString()).doubleValue();
n = Double.valueOf(jn.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
F = Double.valueOf(jF.getText().toString()).doubleValue();
P = F / Math.pow((1 + i),n);
jP.setText(Double.toString(P));
} else if (select == "求期限") {
P = Double.valueOf(jP.getText().toString()).doubleValue();
i = Double.valueOf(ji.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
F = Double.valueOf(jF.getText().toString()).doubleValue();
n=Math.log((double)(F/P))/(Math.log((double)(1+i)));
jn.setText(Double.toString(n));
} else if (select == "求利率") {
P = Double.valueOf(jP.getText().toString()).doubleValue();
n = Double.valueOf(jn.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
F = Double.valueOf(jF.getText().toString()).doubleValue();
i =( Math.pow(F/P, 1.0 / n))-1;
ji.setText(Double.toString(i));
} else if (select == "投资计算") {
P = Double.valueOf(jP.getText().toString()).doubleValue();
i = Double.valueOf(ji.getText().toString()).doubleValue();
n = Double.valueOf(jn.getText().toString()).doubleValue();
m = Double.valueOf(jm.getText().toString()).doubleValue();
for (int j = 0; j < n*m; j++) {
P = P * (1 + i);
}
F = P;
jF.setText(Double.toString(F));
}
}
else if(e.getActionCommand().equals("清除信息")) {
jF.setText("");
jP.setText("");
ji.setText("");
jn.setText("");
jm.setText("1");
}
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
}
}
运行结果:
<转载请标明出处及附上本网页的链接,谢谢>