您的位置:首页 > 其它

复利计算器3.1

2016-03-22 22:28 183 查看
此版本复利计算器 基本实现了所要求的全部功能,并对输入的数据进行出错处理了,而且对代码进行了整合与复用
package JSQ

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.ButtonGroup;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Color;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;

import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

import javax.swing.JRadioButton;

public class FuLiJiSuanQi extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField t2;
private JTextField t3;
private JTextField t1;
private JTextField t4;
private JLabel L3;
double capital,year,rate,sum;
double t_1,t_2,t_3;
int flag=1;
private JRadioButton r1;
private JRadioButton r2;
KeyAdapter keyAdapter=new KeyAdapter(){
public void keyTyped(KeyEvent e) {
int keyChar =e.getKeyChar();
if((keyChar>=KeyEvent.VK_0 &&keyChar<=KeyEvent.VK_9)||keyChar==KeyEvent.VK_PERIOD){
}
else
e.consume();
}
};
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
FuLiJiSuanQi frame = new FuLiJiSuanQi();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public FuLiJiSuanQi() {
setTitle("\u590D\u5229\u8BA1\u7B97\u56683.1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 474, 369);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

final JLabel L1 = new JLabel("\u5B58\u6B3E(\u4E07):");
L1.setFont(new Font("Microsoft JhengHei", Font.PLAIN, 16));
L1.setBounds(62, 121, 90, 15);
contentPane.add(L1);

t1 = new JTextField();
t1.setBounds(166, 115, 173, 21);
contentPane.add(t1);
t1.setColumns(10);
t1.addKeyListener(keyAdapter);
L3 = new JLabel("\u5229\u7387( %):");
L3.setFont(new Font("Microsoft JhengHei", Font.PLAIN, 16));
L3.setBounds(62, 186, 81, 15);
contentPane.add(L3);

t2 = new JTextField();
t2.setBounds(166, 149, 173, 21);
contentPane.add(t2);
t2.setColumns(10);
t2.addKeyListener(keyAdapter);

final JLabel L2 = new JLabel("\u672C\u606F(\u4E07):");
L2.setFont(new Font("Microsoft JhengHei", Font.PLAIN, 16));
L2.setBounds(62, 155, 104, 15);
contentPane.add(L2);

t3 = new JTextField();
t3.setBounds(166, 180, 173, 21);
contentPane.add(t3);
t3.setColumns(10);
t3.addKeyListener(keyAdapter);

final JButton btnNewButton = new JButton("\u5E74\u9650(\u5E74)");
t4 = new JTextField();
t4.setEnabled(false);
t4.setForeground(new Color(127, 255, 212));
t4.setBounds(166, 237, 173, 21);
contentPane.add(t4);
t4.setColumns(10);
final JComboBox comboBox = new JComboBox();
comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(comboBox.getSelectedItem().toString().equals("\u4F30\u7B97\u5B58\u671F"))
{
flag=1;
r1.setEnabled(true);
L1.setText("\u5B58\u6B3E(\u4E07):");
L2.setText("\u672C\u606F(\u4E07):");
L3.setText("\u5229\u7387(%):");
btnNewButton.setText("\u5E74\u9650(\u5E74)");
emptyJTextField();
}
else if(comboBox.getSelectedItem().toString().equals("\u4F30\u7B97\u5B58\u989D")) {
flag=2;
r1.setEnabled(true);
L1.setText("\u672C\u606F(\u4E07)");
L2.setText("\u5E74\u9650(\u5E74):");
L3.setText("\u5229\u7387(%):");
btnNewButton.setText("\u5B58\u6B3E(\u4E07)");
emptyJTextField();
}
else if(comboBox.getSelectedItem().toString().equals("\u4F30\u7B97\u5229\u7387")) {
flag=3;
r1.setEnabled(true);
L1.setText("\u5B58\u6B3E(\u4E07):");
L2.setText("\u672C\u606F(\u4E07):");
L3.setText("\u5E74\u9650(\u5E74):");
btnNewButton.setText("\u5229\u7387(%)");
emptyJTextField();
}
else if(comboBox.getSelectedItem().toString().equals("\u4F30\u7B97\u672C\u606F")){
flag=4;
r1.setEnabled(true);
L1.setText("\u5B58\u6B3E(\u4E07):");
L2.setText("\u5E74\u9650(\u5E74):");
L3.setText("\u5229\u7387(%):");
btnNewButton.setText("\u672C\u606F(\u4E07)");
emptyJTextField();
}
else {
flag=5;
r1.setEnabled(false);
r2.setSelected(isActive());
L1.setText("\u8D37\u6B3E(\u4E07)");
L2.setText("\u5E74\u9650(\u5E74):");
L3.setText("\u5229\u7387(%):");
btnNewButton.setText("\u7B49\u989D\u6708\u8FD8\u6B3E(\u4E07)");
emptyJTextField();
}
}
});
comboBox.setModel(new DefaultComboBoxModel(new String[] {"\u4F30\u7B97\u5B58\u671F", "\u4F30\u7B97\u5B58\u989D",
"\u4F30\u7B97\u5229\u7387","\u4F30\u7B97\u672C\u606F", "\u5206\u671F\u8FD8\u6B3E"}));
comboBox.setBounds(53, 10, 113, 21);
contentPane.add(comboBox);

r1 = new JRadioButton("\u5355\u5229");
r1.setSelected(true);
r1.setBounds(53, 60, 59, 23);
contentPane.add(r1);

r2 = new JRadioButton("\u590D\u5229");
r2.setBounds(114, 60, 71, 23);
contentPane.add(r2);
ButtonGroup group=new ButtonGroup();
group.add(r1);
group.add(r2);
JLabel L = new JLabel("\u529F\u80FD");
L.setFont(new Font("Microsoft JhengHei", Font.PLAIN, 16));
L.setBounds(10, 13, 54, 15);
contentPane.add(L);
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (t1.getText().trim().equals("")||t2.getText().trim().equals("")
||t3.getText().trim().equals("")) {
JOptionPane.showMessageDialog(contentPane, "\u8BF7\u628A\u6570\u636E\u8F93\u5165\u5B8C\u6574");
}
else {
getJTextFieldValue();
if(r1.isSelected()){
calculate();
}
else {
calculate_2();
}
}
}
});
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
btnNewButton.setBounds(39, 236, 127, 23);
contentPane.add(btnNewButton);

JLabel label = new JLabel("\u65B9\u5F0F");
label.setFont(new Font("Microsoft JhengHei", Font.PLAIN, 16));
label.setBounds(10, 62, 54, 15);
contentPane.add(label);
}
public void getJTextFieldValue() {
t_1=Double.parseDouble(t1.getText());
t_2=Double.parseDouble(t2.getText());
t_3=Double.parseDouble(t3.getText());
};
public void  emptyJTextField() {
t1.setText(null);
t2.setText(null);
t3.setText(null);
t4.setText(null);
}
public void calculate() {
switch (flag) {
case 1:
capital=t_1;
sum=t_2;
rate=t_3;
year=(sum/capital-1)/(rate/100);
t4.setText(Double.toString(year));
break;
case 2:
sum=t_1;
year=t_2;
rate=t_3;
capital=sum/(year*rate/100+1);
t4.setText(Double.toString(capital));
break;
case 3:
capital=t_1;
sum=t_2;
year=t_3;
rate=(sum/capital-1)/year*100;
t4.setText(Double.toString(rate));
break;
case 4:
capital=t_1;
year=t_2;
rate=t_3;
sum=capital*(1+rate/100*year);
t4.setText(Double.toString(sum));
break;
default:
break;
}
}
public void  calculate_2() {
switch (flag) {
case 1:
capital=t_1;
sum=t_2;
rate=t_3;
year=Math.log(sum/capital)/Math.log(1+rate/100);
t4.setText(Double.toString(year));
break;
case 2:
sum=t_1;
year=t_2;
rate=t_3;
capital=sum/Math.pow((1+rate/100),year);
t4.setText(Double.toString(capital));
break;
case 3:
capital=t_1;
sum=t_2;
year=t_3;
rate=(Math.pow((sum/capital),1/year)-1)*100;
t4.setText(Double.toString(rate));
break;
case 4:
capital=t_1;
year=t_2;
rate=t_3;
sum=capital*Math.pow((1+rate/100),year);
t4.setText(Double.toString(sum));
break;
case 5:
capital=t_1;
year=t_2;
rate=t_3;
sum=capital*Math.pow((1+rate/1200),year*12)*(rate/1200)
/(Math.pow((1+rate/1200),year*12)-1);
t4.setText(Double.toString(sum));
break;
default:
break;
}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: