zoukankan      html  css  js  c++  java
  • 复利计算

    package fulijisuan;
    
    import java.applet.Applet;
    import java.awt.Button;
    import java.awt.Checkbox;
    import java.awt.CheckboxGroup;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    
    public class fulijisuan1 extends Applet implements ActionListener, MouseListener, ItemListener {
    
        static JTextField jTextmoney = new JTextField();
    
        static JTextField jTextrate = new JTextField();
    
        static JTextField jTextyears = new JTextField();
    
        static JTextField jTextfinally = new JTextField();
    
        static JTextField jTextResult = new JTextField();
    
        static JLabel jLabletitle = new JLabel("复利计算器");
    
        static JLabel jLablemoney = new JLabel("本金");
    
        static JLabel jLablerate = new JLabel("利率");
    
        static JLabel jLableyears = new JLabel("年期");
    
        static JLabel jLablefinally = new JLabel("终值");
    
        JLabel jLableResult = new JLabel("结果");
    
        static calculate calculate = new calculate();
    
        Button b1 = new Button("确认");
    
        Button b2 = new Button("清除");
    
        Checkbox ckbHB[] = new Checkbox[8];
    
        CheckboxGroup ckgHB = new CheckboxGroup();
    
        public void init() // 初始化,堆砌界面
        {
            setLayout(null); // 不设布局管理器
    
            setBackground(new Color(255, 250, 150));
    
            addMouseListener(this);// 将本类作为鼠标事件的接口响应鼠标动作
            add(b1); // 将事先定义好的第一个按钮添加入界面
            b1.setBounds(350, 350, 100, 50); // 设置第一个按钮左上角的位置和大小
            b1.addActionListener(this);// 将本类作为按钮事件的接口响应按钮动作
    
            add(b2);
            b2.setBounds(350, 400, 100, 50);
            b2.addActionListener(this);
    
            add(jTextmoney);
            jTextmoney.setBounds(100, 140, 220, 30);
            jTextmoney.addActionListener(this);
    
            add(jTextrate);
            jTextrate.setBounds(100, 190, 220, 30);
            jTextrate.addActionListener(this);
    
            add(jTextyears);
            jTextyears.setBounds(100, 240, 220, 30);
            jTextyears.addActionListener(this);
    
            add(jTextfinally);
            jTextfinally.setBounds(100, 290, 220, 30);
            jTextfinally.addActionListener(this);
    
            add(jTextResult);
            jTextResult.setBounds(550, 10, 440, 450);
            jTextResult.addActionListener(this);
    
            add(jLabletitle);
            jLabletitle.setBounds(100, 30, 200, 50);
            jLabletitle.setForeground(Color.red);
            jLabletitle.setFont(new Font("微软雅黑", Font.BOLD, 30));
    
            add(jLablemoney);
            jLablemoney.setBounds(50, 140, 30, 30);
    
            add(jLablerate);
            jLablerate.setBounds(50, 190, 30, 30);
    
            add(jLableyears);
            jLableyears.setBounds(50, 240, 30, 30);
    
            add(jLablefinally);
            jLablefinally.setBounds(50, 290, 30, 30);
    
            add(jLableResult);
            jLableResult.setBounds(500,10, 30, 30);
    
            jTextResult.setEditable(false);
    
            ckbHB[0] = new Checkbox("求总额复利", ckgHB, false);
            ckbHB[0].setBounds(350, 20, 100, 40);
            ckbHB[1] = new Checkbox("求总额单利", ckgHB, false);
            ckbHB[1].setBounds(350, 60, 100, 40);
            ckbHB[2] = new Checkbox("求本金", ckgHB, false);
            ckbHB[2].setBounds(350, 100, 100, 40);
            ckbHB[3] = new Checkbox("求年期", ckgHB, false);
            ckbHB[3].setBounds(350, 140, 100, 40);
            ckbHB[4] = new Checkbox("求利率", ckgHB, false);
            ckbHB[4].setBounds(350, 180, 100, 40);
            ckbHB[5] = new Checkbox("若连本带利投资,最后得到的资产总值", ckgHB, false);
            ckbHB[5].setBounds(350, 220, 100, 40);
            ckbHB[6] = new Checkbox("若投资本金每年不变,最后得到的资产总值", ckgHB, false);
            ckbHB[6].setBounds(350, 260, 100, 40);
            ckbHB[7] = new Checkbox("银行贷款", ckgHB, false);
            ckbHB[7].setBounds(350, 300, 100, 40);
            add(ckbHB[0]);
            add(ckbHB[1]);
            add(ckbHB[2]);
            add(ckbHB[3]);
            add(ckbHB[4]);
            add(ckbHB[5]);
            add(ckbHB[6]);
            add(ckbHB[7]);
            ckbHB[0].addItemListener(this);
            ckbHB[1].addItemListener(this);
            ckbHB[2].addItemListener(this);
            ckbHB[3].addItemListener(this);
            ckbHB[4].addItemListener(this);
            ckbHB[5].addItemListener(this);
            ckbHB[6].addItemListener(this);
            ckbHB[7].addItemListener(this);
    
            this.resize(new Dimension(1000, 500));
    
        }
    
        public void enable(boolean e) {
            // 设置组件状态
            b1.setEnabled(e);
            b2.setEnabled(e);
            ckbHB[0].setEnabled(e);
            ckbHB[1].setEnabled(e);
            ckbHB[2].setEnabled(e);
            ckbHB[3].setEnabled(e);
            ckbHB[4].setEnabled(e);
            ckbHB[5].setEnabled(e);
            ckbHB[6].setEnabled(e);
            ckbHB[7].setEnabled(e);
    
        }
    
        public static void reducingState() {
            // 清除文本框的值
            jTextmoney.setVisible(true);
            jLablemoney.setVisible(true);
            jTextrate.setVisible(true);
            jLablerate.setVisible(true);
            jTextyears.setVisible(true);
            jLableyears.setVisible(true);
            jTextfinally.setVisible(true);
            jLablefinally.setVisible(true);
        }
    
        @Override
        public void itemStateChanged(ItemEvent arg0) {
            // 做完选择后的变化
            if (ckbHB[0].getState()) {
                fulijisuan1.reducingState();
                jTextfinally.setVisible(false);
                jLablefinally.setVisible(false);
            } else if (ckbHB[1].getState()) {
                fulijisuan1.reducingState();
                jTextfinally.setVisible(false);
                jLablefinally.setVisible(false);
            } else if (ckbHB[2].getState()) {
                fulijisuan1.reducingState();
                jTextmoney.setVisible(false);
                jLablemoney.setVisible(false);
            } else if (ckbHB[3].getState()) {
                fulijisuan1.reducingState();
                jTextyears.setVisible(false);
                jLableyears.setVisible(false);
            } else if (ckbHB[4].getState()) {
                fulijisuan1.reducingState();
                jTextrate.setVisible(false);
                jLablerate.setVisible(false);
            } else if (ckbHB[5].getState()) {
                fulijisuan1.reducingState();
                jTextfinally.setVisible(false);
                jLablefinally.setVisible(false);
            } else if (ckbHB[6].getState()) {
                fulijisuan1.reducingState();
                jTextfinally.setVisible(false);
                jLablefinally.setVisible(false);
            } else if (ckbHB[7].getState()) {
                fulijisuan1.reducingState();
                jTextfinally.setVisible(false);
                jLablefinally.setVisible(false);
            }
    
        }
    
        @Override
        public void mouseClicked(MouseEvent arg0) {
    
        }
    
        @Override
        public void mouseEntered(MouseEvent arg0) {
    
        }
    
        @Override
        public void mouseExited(MouseEvent arg0) {
    
        }
    
        @Override
        public void mousePressed(MouseEvent arg0) {
    
        }
    
        @Override
        public void mouseReleased(MouseEvent arg0) {
    
        }
    
        @Override
        public void actionPerformed(ActionEvent e) {
            // 确定后显示结果和清除文本框的值
            if (e.getSource() == b1) {
                double money = 0;
                double rate = 0;
                double years = 0;
                double Finally = 0;
                try {
                    jTextResult.setText("");
                    if (ckbHB[0].getState()) {
                        // 总额复利
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = calculate.calculatezongefuli(money, rate, years);
                        jTextResult.setText(Double.toString(Finally));
    
                    } else if (ckbHB[1].getState()) {
                        // 总额单利
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = calculate.calculatezongedanli(money, rate, years);
                        jTextResult.setText(Double.toString(Finally));
    
                    } else if (ckbHB[2].getState()) {
                        // 本金
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = Double.valueOf(jTextfinally.getText().toString()).doubleValue();
                        money = calculate.calculatebenjin(rate, years, Finally);
                        jTextResult.setText(Double.toString(money));
    
                    } else if (ckbHB[3].getState()) {
                        // 期限
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        Finally = Double.valueOf(jTextfinally.getText().toString()).doubleValue();
                        years = calculate.calculatenianqi(money, rate, Finally);
                        jTextResult.setText(Double.toString(years));
    
                    } else if (ckbHB[4].getState()) {
                        // 利率
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = Double.valueOf(jTextfinally.getText().toString()).doubleValue();
                        rate = calculate.calculaterate(money, years, Finally);
                        jTextResult.setText(Double.toString(rate));
                    } else if (ckbHB[5].getState()) {
                        // 若连本带利投资,最后得到的资产总值
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = calculate.calculatemoneyandrate(money, rate, years);
                        jTextResult.setText(Double.toString(Finally));
                    } else if (ckbHB[6].getState()) {
                        // 若投资本金每年不变,最后得到的资产总值
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = calculate.calculatemoney(money, rate, years);
                        jTextResult.setText(Double.toString(Finally));
    
                    } else if (ckbHB[7].getState()) {
                        // 银行贷款
                        money = Double.valueOf(jTextmoney.getText().toString()).doubleValue();
                        rate = Double.valueOf(jTextrate.getText().toString()).doubleValue();
                        years = Double.valueOf(jTextyears.getText().toString()).doubleValue();
                        Finally = calculate.calculatedaikuan(money, rate, years);
                        jTextResult.setText(Double.toString(Finally));
    
                    }
                } catch (Exception e1) {
                    JOptionPane.showMessageDialog(null, "未输入正确的数据!", "错误提示", JOptionPane.ERROR_MESSAGE);
                    System.out.println(e1);
                }
            }
    
            if (e.getSource() == b2) {
                jTextfinally.setText("");
                jTextmoney.setText("");
                jTextrate.setText("");
                jTextyears.setText("");
                jTextResult.setText("");
            }
        }
    }

    此次的复利计算并没有多大的变化,就多了个结果窗口弹出,把界面做的更好看些。

  • 相关阅读:
    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现
    Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途
    Atitit 图像处理 灰度图片 灰度化的原理与实现
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
    Atitit 实现java的linq 以及与stream api的比较
    Atitit attilax在自然语言处理领域的成果
    Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库 java常用图像处理类库
    Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
    Atitit apache 和guava的反射工具
    atitit。企业的价值观 员工第一 vs 客户第一.docx
  • 原文地址:https://www.cnblogs.com/w304/p/5393272.html
Copyright © 2011-2022 走看看