在处理财务账款时,一般需要使用大写金额。如进行转账时,需要将转账金额写成大写的。也就是说,如果要转账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.jar和ConvertSum.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 |
|
focusable:false |
result |
|
text:转换 |
button |
|
width:388 height:20 orientation:horizontal |
separator |
|
width:388 height:20 orientation:horizontal |
separator_1 |
|
width:14 height:95 orientation:vertical |
separator_2 |
|
width:14 height:95 orientation:vertical |
separator_2_1 |
注意:在上表中,后面的4个JSeparator控件用于美化页面,没有实际意义。
(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所示的运行结果。