java---金额中文大小写实时转换小程序
本例演示一个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("金额的中文大写形式");
}
}
正常转换:
出异常处理:
java---金额中文大小写实时转换小程序的更多相关文章
- Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解
Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...
- VSTO学习笔记(七)基于WPF的Excel分析、转换小程序
原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...
- 前端,Java,产品经理,微信小程序,Python等资源合集大放送
为了感恩大家长久以来的关注和支持,小编准备了一些福利,整理了包含前端,Java,产品经理,微信小程序,Python,网站源码,Android应用视频教程,微信公众平台开发教程及材料等资源合集大放送. ...
- 利用java开发一个双击执行的小程序
之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 ...
- java几个easy出错的小程序
把基本知识过了一遍,发现了几个自己easy 出错的小程序,记录下来.. .. 1.关于try-catch异常 2,JAVA中的自省机制 3.有继承关系的类中静态函数 1,关于try-catch异常 p ...
- Java后端使用socketio,实现小程序答题pk功能
在使用socket.io跟前端通信过程中,出现了一系列问题,现做下记录. 一.功能需求是,在小程序端,用户可相互邀请,进入房间后进行答题PK.实现方法是,用户点击邀请好友,建立连接,查询当前是否有房间 ...
- java 金额的大小写转换类
/** *金额大小写转换工具类 */ public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { &q ...
- java使用dbutils工具类实现小程序 管家婆记账软件
1.所需创建的包和 jar包 2.创建表结构 #生成一些表数据 ,,'交通银行','2016-03-02','家庭聚餐'); ,,'现金','2016-03-15','开工资了'); ,,'现金', ...
- java实现一个简单的爬虫小程序
前言 前些天无意间在百度搜索了一下以前写过的博客 我啥时候在这么多不知名的网站上发表博客了???点进去一看, 内容一模一样,作者却不是我... 然后又去搜了其他篇博客,果然,基本上每篇都在别的网站上有 ...
随机推荐
- c#中string.trimstart() 和string.trimend() 的用法
trim(),trimstart(),trimend()这样写是去掉空格,trimstart(a)是去掉字符串开始包含char[] a的字符,trimend同trimstart. 例:char[] a ...
- C#当中的多线程_线程同步
第2章 线程同步 原来以为线程同步就是lock,monitor等呢,看了第二章真是大开眼界啊! 第一章中我们遇到了一个叫做竞争条件的问题.引起的原因是没有进行正确的线程同步.当一个线程在执行操作时候, ...
- .Net下的MSMQ(微软消息队列)的同步异步调用
一.MSMQ简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具.消息队列 和电子邮件有着很多相似处,他们都包含多个属性, ...
- swift 关于闭包和函数
调用函数,有闭包参数时: 函数的实现中:闭包为参数时,有参数返回值类型: 调用闭包时,传入参数 调用函数时:闭包为参数,是闭包的实现,当闭包为最后一个参数时,可写在参数括号外面 即===>函数在 ...
- ios专题 - GCD(1)
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允 ...
- STP根交换机,指定端口,根端口,阻塞端口
STP判断各交换机端口(指定端口:DP;根端口:RP;阻塞端口:AP) 判断步骤: 1.选举根交换机: 判断对象:所有运行STP协议的交换机中选出一个; 判断依据:交换机中选择网桥ID值(交换机优先级 ...
- java.net.ServerSocket和java.net.Socket
个人博客地址:http://www.cnblogs.com/wdfwolf3/ java.net.ServerSocket 1.构造函数 a.ServerSocket() 创建一个无连接的server ...
- Gtest打桩函数
假设Client的定义如下 class Client { ...... public: virtual bool GetData(std::string& data); ...... }; 我 ...
- 看es6 字符串新方法有感
'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello" 'na'.repeat(0) // " ...
- X-window
X-Window(也常称为X11或X)系统是一种以位图方式显示的软件视窗系统,最初是1984年麻省理工学院的研究,之后变成UNIX.类UNIX. 以及OpenVMS等操作系统所一致适用的标准化软件工具 ...