本例演示一个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---金额中文大小写实时转换小程序的更多相关文章

  1. Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

    Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...

  2. VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

    原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...

  3. 前端,Java,产品经理,微信小程序,Python等资源合集大放送

    为了感恩大家长久以来的关注和支持,小编准备了一些福利,整理了包含前端,Java,产品经理,微信小程序,Python,网站源码,Android应用视频教程,微信公众平台开发教程及材料等资源合集大放送. ...

  4. 利用java开发一个双击执行的小程序

    之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 ...

  5. java几个easy出错的小程序

    把基本知识过了一遍,发现了几个自己easy 出错的小程序,记录下来.. .. 1.关于try-catch异常 2,JAVA中的自省机制 3.有继承关系的类中静态函数 1,关于try-catch异常 p ...

  6. Java后端使用socketio,实现小程序答题pk功能

    在使用socket.io跟前端通信过程中,出现了一系列问题,现做下记录. 一.功能需求是,在小程序端,用户可相互邀请,进入房间后进行答题PK.实现方法是,用户点击邀请好友,建立连接,查询当前是否有房间 ...

  7. java 金额的大小写转换类

    /** *金额大小写转换工具类 */ public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { &q ...

  8. java使用dbutils工具类实现小程序 管家婆记账软件

    1.所需创建的包和 jar包 2.创建表结构  #生成一些表数据 ,,'交通银行','2016-03-02','家庭聚餐'); ,,'现金','2016-03-15','开工资了'); ,,'现金', ...

  9. java实现一个简单的爬虫小程序

    前言 前些天无意间在百度搜索了一下以前写过的博客 我啥时候在这么多不知名的网站上发表博客了???点进去一看, 内容一模一样,作者却不是我... 然后又去搜了其他篇博客,果然,基本上每篇都在别的网站上有 ...

随机推荐

  1. 前台 添加引用 iis文件路径

    1. <script src="../../../_layouts/15/JS/jquery-1.7.2.js"></script> 在前台添加的引用与II ...

  2. SetConsoleCtrlHandler 处理控制台消息

    转载自csdn:http://blog.csdn.net/zhongguoren666/article/details/8770615   SetConsoleCtrlHandler 处理控制台消息 ...

  3. orainstRoot.sh到底执行了哪些操作

    1 #!/bin/sh      1 #!/bin/sh      2 AWK=/bin/awk      3 CHMOD=/bin/chmod      4 CHGRP=/bin/chgrp     ...

  4. iOS截屏代码

    转载自:http://m.open-open.com/m/code/view/1420469506375 1.普通界面 /** *截图功能 */ -(void)screenShot{ UIGraphi ...

  5. XMPPFramework ios 例子中链接服务器失败,opnefire 服务器链接失败

    首先说下上周又做了几天得无用功, 之前一直用的是ejabberd ,这次换了opnefire,有人说opnefire跟新的xmpp协议不兼容,后来又更换成了ejabberd, Github 上得dem ...

  6. 【html】【1】html的简单结构

    1>我们为什么能打开html网页 计算机本身有个配置文件后缀打开程序的默认,好比:.txt =>记事本打开   html=>浏览器打开 文件一切的鼻祖都起源于.txt文件,你只要修改 ...

  7. 自己学习过程中关于以后有可能用到的技术的备份,微信广告滑屏组件 iSlider

    转载: iSlider 是个非常平滑的滑块,支持移动端 WebApp,HTML5App 和混合型的 App. iSlider是移动端的滑动组件的最佳解决方案.他和普通的web 端的滑动插件有很大不同, ...

  8. Git命令详解【2】

    git的工作区   git 安装 sudo apt-get insall git 查看git 版本 git --version   git的配置 #配置用户名 git config --global ...

  9. YII 数据库相关操作

    CDbConnection: 一个抽象数据库连接CDbCommand: SQL statementCDbDataReader: 匹配结果集的一行记录CDbTransaction:数据库事务 访问数据库 ...

  10. 配置Struts2的异常处理

    最好的方式是通过声明管理异常处理 1Action里面的execute()方法抛出所有异常:public String execute() throws Exception{} 2声明异常捕捉     ...