实现人民币金额大小写转换

在处理财务账款时,一般需要使用大写金额。如进行转账时,需要将转账金额写成大写的。也就是说,如果要转账1200元,则需要写成“壹仟贰佰元整”。对于这种情况,如果手动填写不仅麻烦,而且容易出错,所以常常需要通过程序控制自动进行转换。例如,中国工商银行的汇款页面的第三步填写款项信息时,就实现了人民币金额大小写转换功能,如图1所示。

1  中国工商银行的转账页面

下面我们也来制作一个程序,实现人民币金额大小写转换。它能够将输入的有效的小写金额转换为大写金额,当输入的小写金额格式不正确时,还能给出提示。程序的运行结果如下。

l         在小写金额文本框中输入小写金额267005.36,单击“转换”按钮,将该小写金额转换为大写金额,并显示到下面的文本框中,如图2所示。

2  将输入的小写金额转换为大写金额的效果

l         如果输入的小写金额不正确,将给予提示,如图3所示

3  输入的小写金额不正确时显示的效果

已有类

位置:应用/源码管理/类库/BackgroundPanel.jar

位置:应用/源码管理/类库/ConvertSum.jar

 关键技术

在实现人民币金额大小写转换时,主要应用文本框组件获取输入的小写金额,调用已有类ConvertSum中的changemoney()方法将输入的小写金额转换为大写金额,并将转换的大写金额输出到另一个文本框中。

 实现步骤

下面我们来介绍实现人民币金额大小写转换程序的实现步骤。

1)创建一个Java项目,名称为“实现人民币金额大小写转换”。

2)创建一个JFrame窗体,名称为MainFrame,并将其保存在com.wgh包中。

3)在项目的根目录中创建一个名称为lib的文件,并将本实例所需的已有类BackgroundPanel.jarConvertSum.jar复制到lib文件夹中。

说明 BackgroundPanel类用于设置窗体背景ConvertSum类用于将输入的小写金额转换为大写金额。

4)依次将两个Jar包添加到构建路径中。添加后的包资源管理器结构如图4所示。

4  将所需的Jar包全部配置到构建路径中的效果

5)在设计视图中,打开程序的主窗体MainFrame,并设置窗体为空布局,以及窗体的名称,然后在左侧的工具面板中,选择按钮,在弹出的Open type对话框中,输入com.lzw.BackgroundPanel后,单击“确定”按钮,将显示如图5所示的效果。

5  等待选择组件放置的位置

说明设置窗体为空布局的方法是在窗体上单击鼠标右键在弹出的快捷菜单中选择Set layout/Absolute (null) Layout菜单项。或者在属性面板中,找到layout属性,将属性值设置为Absolute (null) Layout

6)在合适位置单击鼠标,放置组件,并调整窗体和组件的大小。

7)在src节点上添加一个名称为images的文件夹,并将背景图片复制到这个文件夹中。

8)选中刚刚添加的BackgroundPanel组件,在左侧的属性面板中找到image属性,单击“…”按钮,将弹出选择图片对话框,这里选择background.jpg,如图6所示,单击“确定”按钮。

6  选择图片对话框

9)向该窗体中添加文本框、标签、分隔符和按钮控件,并设置主要属性,如表1所示。

1                   程序主窗体中控件的属性设置

控件名称

控件属性

关联变量

text:请输入小写金额:

label

 

money

text:转换后:

label_1

focusablefalse

result

text:转换

button

width388

height20

orientationhorizontal

separator

width388

height20

orientationhorizontal

separator_1

width14

height95

orientationvertical

separator_2

width14

height95

orientationvertical

separator_2_1

注意在上表中后面的4JSeparator控件用于美化页面没有实际意义。

10)在“转换”按钮上,双击鼠标左键,进入到代码视图,这时,Eclipse将自动为该按钮添加单击事件。Eclipse自动生成的代码如下:

button.addActionListener(new ActionListener() {               //为按钮添加事件监听

      public void actionPerformed(final ActionEvent e) {    //重写actionPerformed()方法

      }

});

此时,只需要在最里层的大括号中间编写用于实例化ConvertSum类,并调用相应的方法将输入的小写金额转换为大写金额,显示到转换后文本框中的代码,具体代码如下。

button.addActionListener(new ActionListener() {                                    //Eclipse自动生成的代码

      public void actionPerformed(final ActionEvent e) {                         //Eclipse自动生成的代码

            ConvertSum convertSum=new ConvertSum();                           //实例化ConvertSum

            result.setText(convertSum.changemoney(money.getText()));      //将输入的小写金额转换为大写金额并显示到转换后文本框中

      }                                                                                                 //Eclipse自动生成的代码

});                                                                                                     //Eclipse自动生成的代码

11)保存该文件,单击按钮,运行该程序,将显示如图7所示的运行结果。

7  默认的运行结果

输入正确的小写金额,单击“转换”按钮,将显示如图2所示的运行结果,输入错误格式的小写金额,单击“转换”,将显示如图3所示的运行结果。