JavaSwing实现贷款运算器(入门)

最近开始学习JavaSwing,第一个代码是贷款运算器

贷款运算器要求实现等额本金还款方式和等额本息还款方式
等额本金方式:
月均还款=[贷款本金 * 月利率 * (1+月利率 ^ 还款月数]/[(1+月利率)^ 还款月数-1]
月均利息=贷款本金 * 月利率 * [(1+月利率) ^ 还款月数-(1+月利率) ^ (还款月序 号-1)]/[(1+月利率)^还款月数-1]
总利息=还款月数* 每月月供额 -贷款本金

等额本金方式:
月均还款=(贷款本金/还款月数)+(贷款本金-已归还本金累计额)*月利率
月均利息=剩余本金 * 月利率=(贷款本金-已归还本金累计额)*月利率
总利息=[(总贷款额/还款月数+总贷款额 *月利率)+总贷款额/还款月数 *(1+月利率)]/2 *还款月数-总贷款额

具体代码如下

package 计算器;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DaiKuan extends JFrame implements ActionListener
{   private static final long serialVersionUID = 1L;//设置文本框private static class jtextfield extends JTextField{private static final long serialVersionUID = 1L;public jtextfield(String text, int x,int y){super(text);setBounds(x,y,200,40);}}//设置标签private static class jlabel extends JLabel{private static final long serialVersionUID = 1L;public jlabel(String text, int x,int y){super(text);setBounds(x,y,400,40);}}//构造函数String a="",b="",c="",d="",g="",f="";JTextField text1=new jtextfield("",150,5);JTextField text2=new jtextfield("",150,50);JTextField text3=new jtextfield("",150,100);JTextField text4=new jtextfield("",150,150);JTextField text5=new jtextfield("",150,200);JTextField text6=new jtextfield("",150,250);public DaiKuan(String title){super(title);this.add(text1);this.add(text2);this.add(text3);this.add(text4);this.add(text5);this.add(text6);JButton button1=new JButton("等额本息");JButton button2=new JButton("等额本金");button1.setBounds(5, 300, 100, 40);button2.setBounds(150, 300, 100, 40);this.add(button1);this.add(button2);button1.addActionListener(this);button2.addActionListener(this);JLabel label1=new jlabel("贷款年限(年)",5,5);JLabel label2=new jlabel("贷款金额(万元)",5,50);JLabel label3=new jlabel("贷款年利率(%)",5,100);JLabel label4=new jlabel("月均还款(元)",5,150);JLabel label5=new jlabel("利息总额(元)",5,200);JLabel label6=new jlabel("还款总额(元)",5,250);this.add(label1);this.add(label2);this.add(label3);this.add(label4);this.add(label5);this.add(label6);this.setLayout(null);this.setResizable(false);this.setBounds(600,200, 360, 420);//this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {String label = e.getActionCommand(); if(label =="等额本息"){//获取文本框内容a=text1.getText(); b=text2.getText();c=text3.getText();//获取计算结果并显示在文本框内String s1=String.valueOf(lixiyuehuan(a,b,c));text4.setText(s1);String s2=String.valueOf(lizongxi(a,b,c));text5.setText(s2);String s3=String.valueOf(lixiyuehuan(a,b,c)*zhuanhuan(a)*12);text6.setText(s3);}if(label =="等额本金"){a=text1.getText();b=text2.getText();c=text3.getText();String s1=String.valueOf(benjinyuehuan(a,b,c));text4.setText(s1);String s2=String.valueOf(benjinzongxi(a,b,c));text5.setText(s2);String s3=String.valueOf(benjinyuehuan(a,b,c)*zhuanhuan(a)*12);text6.setText(s3);}}//等额本金总息private double benjinzongxi(String str, String str1, String str2) {double a=zhuanhuan(str)*12;//贷款月份double b=10000*zhuanhuan(str1);//贷款金额double c=zhuanhuan(str2)*0.01;//贷款年利率double yuelilv=c/12;//贷款月利率double e1=(b/a+b*yuelilv)+b/a*(1+yuelilv);double e2=e1/2*a-b;return e2;}//等额本金月还private double benjinyuehuan(String str, String str1, String str2) {double a=zhuanhuan(str)*12;double b=10000*zhuanhuan(str1);double tzongxi=benjinzongxi(str,str1,str2);        //这儿用了一个投机取巧的方法来计算月均还款,因为觉得要计算已归还本金累计额会比较复杂,等以后想明白了再改回来double tyuexi=tzongxi/a;double tyuehuan=b/a+tyuexi;return tyuehuan;}//等额本息总息private double lizongxi(String str, String str1, String str2) {double a=zhuanhuan(str)*12*lixiyuehuan(str,str1,str2)-zhuanhuan(str1)*10000;return a;}//等额本息月还private double lixiyuehuan(String str, String str1, String str2) {double a=zhuanhuan(str)*12;double b=10000*zhuanhuan(str1);double c=zhuanhuan(str2)*0.01;double yuelilv=c/12;double d=Math.pow(1+yuelilv,a);double e=(b*yuelilv*d)/(d-1);return e;}//将String类型转换为double类型private double zhuanhuan(String str) {double a=Double.parseDouble(str);return a;}
}

这是主函数

package 计算器;
import 计算器.DaiKuan;
public class Main
{public static void main(String[] args){new DaiKuan("贷款计算器");}
}

虽然现在可以实现功能,但是代码写得实在是不好看
希望随着学习的深入,我能来完善自己的代码,把代码写得更好看更实用

JavaSwing实现贷款计算器相关推荐

  1. delphi dbgrideh 遍历每一个单元格_利用财务函数制作贷款计算器,让你了解还款的每一个细节...

    大家好我是践行计算机教育刘老师,今天跟大家分享利用财务函数可以制作贷款计算机,以方便了解还款过程中的每一个细节. 贷款示例效果图 制作贷款计算器 制作贷款计算器-计算每月还款额 在C6单元格中输入公式 ...

  2. java swing 图片切换_使用Javaswing自定义图片作为按钮(原创)

    本人初学习Javaswing没多久,刚开始找不到怎么把图片放在按钮上,上网查找资料都是涵盖了在项目中的,自己摸索后才知道原来没有那么难.下面是我写的例子: package com.iconButton ...

  3. JAVA之获取JavaSwing单选框JRadioButton选中的值(内容)

    JAVA之获取JavaSwing单选框JRadioButton选中的值(内容) package word;import java.awt.BorderLayout; import java.awt.C ...

  4. JAVA之获取JavaSwing复选框JCheckBox选中的值(内容)

    JAVA之获取JavaSwing复选框JCheckBox选中的值(内容) package shishi;import java.awt.BorderLayout; import java.awt.Co ...

  5. java swing 串口_ComTest 接收串口数据,并显示在文本框内,通过JavaSwing实现 Develop 265万源代码下载- www.pudn.com...

    文件名称: ComTest下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 3157 KB 上传时间: 2016-09-21 下载次数: 0 提 供 者: 韩坤 ...

  6. 基于JavaSwing+mysql的图书管理系统设计和实现

    前言: 项目是使用Java swing开发,可实现基础数据维护.图书类型管理和维护.图书信息管理和维护.注销退出.关于作者简介等功能.界面设计比较简介.适合作为Java课设设计以及学习技术使用. 引言 ...

  7. JAVA里点击树与表格结合,javaswing中的表格(jtable)和树(jtree)组件使用实例.doc

    javaswing中的表格(jtable)和树(jtree)组件使用实例.doc JAVASWING中的表格JTABLE和树JTREE组件使用实例这篇文章主要介绍了JAVASWING中的表格JTABL ...

  8. JavaSwing编程总结

    都2021年了,还有人用JavaSwing?这只是我的一个爱好,我喜欢做界面开发,但是又只有Java还学的不错,大部分Java书籍中对JavaSwing介绍的都比较一般,我便找了<Java2图形 ...

  9. 基于JavaSwing开发天猫购物商城系统(用户 管理员角色) 课程设计 毕业设计源码

    基于JavaSwing开发天猫购物商城系统(用户 管理员角色)(毕业设计/大作业) 开发工具: Eclipse/Myeclipse/idea+Jdk+MySQL 运行视频: 基于JavaSwing开发 ...

最新文章

  1. php修改为ajax,php通过ajax实现双击table修改内容
  2. 北电PBX资料_D 14 外 線 設 定
  3. java-HTMLjavaSkcriptCSSjQueryajax
  4. 任务管理平台_基于notion详谈任务规划的思路(二):搭建任务管理平台
  5. 《去哪网编程题》身份证分组
  6. linux之安装frida遇到的问题
  7. ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
  8. 控制台文字对战游戏 初始版
  9. CodeMirror动态加载和表单提交
  10. python ide安装_Python基础学习笔记(一)安装以及IDE的配置
  11. java流有什么用_在Java中,流比循环有什么优势?
  12. vim替换字符串带斜杠_Vim:正则表达式匹配一个字符串
  13. 排序算法之——插入排序分析
  14. 开源软件技巧与精髓分享
  15. 高科技玩具这么无趣,为何还要鼓励孩子玩?
  16. 微信分享开发:准备工作[微信公众平台以及微信中控服务配置](一)
  17. Java Swing入门
  18. 在ABP中通过EF直接执行原生Sql的解决方案
  19. Maxthon 遨游浏览器找回“上次未关闭页面”
  20. 白帽学院靶场之编辑器的奥秘(二)

热门文章

  1. 对于青少年编程等级考试的认识
  2. C++ windows下判断鼠标点击及获取像素点
  3. Unity Shader学习-高光反射
  4. android studio引用高德地图api后地图显示白屏
  5. h5画三角形_如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...
  6. 苹果描述文件无法连接服务器,教你 game center无法连接服务器解决办法及iOS9.3.2公测版已修复GameCenter无响应bug...
  7. maven dependency的作用英文解释(转载)
  8. poj 1013 模拟 天平问题
  9. java的枚举类型是什么_什么是枚举(java枚举类型enum用法)
  10. 看的见的算法系列——插入排序