java---金额中文大小写实时转换小程序
来源:互联网 发布:淘宝网电脑版下载安装 编辑:程序博客网 时间:2024/06/06 01:59
本例演示一个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("金额的中文大写形式"); }}
正常转换:
出异常处理:
0 0
- java---金额中文大小写实时转换小程序
- java金额大小写转换 数字大小写转换
- java 实现金额大小写转换
- 小程序---金额转换
- java android 金额大小写数据的转换
- java 金额的大小写转换类
- Java中文大写金额转换
- 人民币金额大小写转换
- 大小写金额转换
- PB金额大小写转换
- 金额大小写转换
- asp金额大小写转换
- 金额大小写转换算法
- 金额大小写转换函数
- 大小写金额转换
- 金额大小写转换!
- delphi金额大小写转换
- 金额大小写转换
- GOF(Group Of Four)23种设计模式之单例模式
- poj Jury Compromise 1015 (DP) 好题
- ubuntu忘记登陆密码修改
- 【树项目6 - 二叉树的构造——第11周】
- UML之用例图
- java---金额中文大小写实时转换小程序
- xUtils 引用时出错
- 下载文件Excel文件
- ArcGIS API for javascript开发笔记(三)——解决打印输出的中文为乱码问题
- 调色板
- maven项目的部署(1)
- Java实现不规则窗体
- 给出先序序列,中序序列恢复二叉树
- Xcode7.1环境下上架App到AppStore 流程 (二)