java---金额中文大小写实时转换小程序

简介: 本例演示一个String图形用户界面的完整应用程序,包括输入数据, 显示结果,响应事件以及异常处理。 输入一个实数表示金额,每次输入时显示该金额的中文大小写形式,运行窗口见最后。

本例演示一个String图形用户界面的完整应用程序,包括输入数据,
显示结果,响应事件以及异常处理。
输入一个实数表示金额,每次输入时显示该金额的中文大小写形式,运行窗口见最后。
在窗口中,“金额”文本行可编辑,作为数据输入编辑框:“中文大写形式”
文本仅显示结果,不可以编辑。金额文本行响应文本编辑事件。当输入数据
错误时,进行异常处理,弹出一个对话框,给出提示信息。
程序如下:

package cn.hncu.gui3;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Label;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class MoneyJFrame extends JFrame implements CaretListener {
    JTextField tfdMonry,tfdStr; 
    public MoneyJFrame(String str) {
        super(str);
        this.setBounds(300, 240, 500, 140);//(  x位置, y位置  , 宽度,高度)
        //this.setBackground(java.awt.Color.red);
        this.getContentPane().setBackground(Color.white);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new FlowLayout(FlowLayout.RIGHT));

        Font font = new Font("a",Font.BOLD,20);
        JLabel lb = new JLabel("金额");
        lb.setFont(font);
        this.getContentPane().add(lb);
        tfdMonry = new JTextField("12345.67",20);
        tfdMonry.setFont(font);
        tfdMonry.setHorizontalAlignment(JTextField.RIGHT);
        this.getContentPane().add(tfdMonry);

        JLabel lb2 = new JLabel("中文大写形式");
        lb2.setFont(font);
        this.getContentPane().add(lb2);
        tfdStr = new JTextField(20);
        tfdStr.setFont(font);
        tfdStr.setHorizontalAlignment(JTextField.RIGHT);
        tfdStr.setEditable(false);//文本行设为只显示,不可编辑
        this.getContentPane().add(tfdStr);

        tfdMonry.addCaretListener(this);
        //注册文本编辑事件监听器
        this.setVisible(true);
    }
    @Override
    public void caretUpdate(CaretEvent e) {
//      System.out.println("kkk");
        String str = tfdMonry.getText();
        try {
            double x = Double.parseDouble(str);
            tfdStr.setText(RMBtoString(x));
        } catch (NumberFormatException e1) {
            JDialog dlg = new JDialog(this,true);
            dlg.setSize(300,80);

            dlg.add(new JLabel(str+"不能转换成浮点数,请重新输入!"));
            int lx = this.getX();
            int ly = this.getY();
            dlg.setLocation(lx+20, ly+20);
            dlg.setVisible(true);
        }

    }

    private String RMBtoString(double x) {
        String digit = "零壹贰叁肆伍陆柒捌玖";
        String yuan = "亿千百拾万千百拾元角分";

        String result = "";
        int y =(int )(x*100+0.5);
        int i =yuan.length()-1;
        while(y>0 && i>0){
            String str = ""+digit.charAt(y%10)+yuan.charAt(i);
            result = str + result;
            y=y/10;
            i--;
        }
        //System.out.println("result");
        return result;
    }

    public static void main(String[] args) {
        new MoneyJFrame("金额的中文大写形式");
    }
}

正常转换:

出异常处理:

目录
相关文章
|
1月前
|
小程序 前端开发 JavaScript
基于Java的校园二手交易小程序的设计与实现
基于Java的校园二手交易小程序的设计与实现
27 2
|
3月前
|
人工智能 移动开发 小程序
Java医院智慧3D导诊系统源码 微信小程序源码
技术架构:springboot+redis+mybatis plus+mysql+RocketMQ
62 1
|
3月前
|
机器学习/深度学习 自然语言处理 小程序
Java+springboot开发医院智能导诊小程序源码
患者信息采集:在患者来院时,可以通过智能问诊系统收集患者的基本信息、症状描述、病史等。这可以通过语音识别、自然语言处理技术实现。
35 0
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
2月前
|
监控 IDE Java
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
45 0
|
19天前
|
人工智能 小程序 Java
Java智慧校园系统源码 微信小程序+电子班牌
通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机时间、设置日常开关机时间、远程班牌截屏、远程班牌升级等操作。
|
1月前
|
存储 小程序 前端开发
Java代码能搭建小程序
Java代码能搭建小程序
18 0
|
2月前
|
人工智能 小程序 数据挖掘
Java智慧中小学校管理系统源码带微信小程序
微信小程序端包括家长端和教师端;设有首页、发现、个人中心;首页里设有学校简介、组织架构、师资力量、学校荣誉、网上报修、电子班牌;发现页面可以看到最新的动态,班级圈等;个人中心设有上班打卡、我的课表、请假、班级考勤、通知公告、倒计时、积分商城、放学管理、体温检测、班级德育、图片视频管理、教学班,校内各大活动一目了然。
37 0
|
2月前
|
小程序 Java 数据挖掘
Java校园智慧管理云平台源码 小程序+android电子班牌系统
智慧校园技术架构 ❀后端:Java ❀框架:springboot ❀前端页面:vue +element-ui ❀小程序:小程序原生开发 ❀电子班牌:Java Android
36 0
|
3月前
|
小程序 JavaScript Java
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
51 0