|
在本教程中,您将使用 Sun Java Studio Creator 集成开发环境 (integrated development environment, IDE) 中的转换器设置日期和货币格式。 |
|
目录
|
![[spacer]](/im/a.gif) |
 |
转换器的概念
IDE 提供了一组转换器,您可以使用它们来转换组件数据。如果输入字段用于输入数值,则您很可能需要使用转换器。转换器也适用于设置日期、时间和货币值的格式。可以从组件面板的“转换器”类别下获得的标准转换器如下所示:
- Big Decimal 转换器
- 布尔转换器
- 字节转换器
- 日历转换器
- 字符转换器
- 日期时间转换器
- 双精度转换器
- 浮点转换器
- 整数转换器
- 长整型转换器
- 数值转换器
- 短整型转换器
- Sql Timestamp 转换器
在标准转换器中,数值转换器和日期时间转换器这两种转换器具有自己的属性,您可以通过设置这些属性来指定数据的格式和类型。本教程介绍如何使用这两种转换器。有关转换模型的概念性细节的详细信息,请参见 J2EE 1.4 教程中题为 转换模型的部分。
设计应用程序
- 创建一个新的 Web 应用程序项目,并将它命名为
ConverterExample。
图 1 显示了将在以下步骤中创建的页。
图 1:页面设计 |
- 从组件面板的“基本”类别中,将一个“文本字段”组件拖放到页面上。将“文本字段”的
label 属性设置为 Dollar Amount:
label 属性位于“属性”窗口的“外观”类别的下方。
- 通过选中文本字段“属性”窗口中的
required 复选框,将该属性设置为 True。
required 属性位于“属性”窗口中“数据”类别的下方。如果 required 属性的值为 True,则要求用户在输入字段中输入一个值。
- 将一个“按钮”组件放在“文本字段”组件的右侧。将按钮的 text 属性更改为
Convert。
- 从组件面板的“基本”类别中拖动两个“标签”组件,并将它们放在页面上。按照以下形式,设置这些标签的 text 属性:
Converted to Euros:
Date and Time:
- 将“静态文本”组件放在 Converted to Euros 标签的旁边。
- 将另一个“静态文本”组件放置在 Date and Time 标签的旁边。
使用数值转换器
- 从组件面板的“转换器”类别中,将“数值转换器”拖放到“文本字段”组件上。
数值转换器会指定“文本字段”组件返回的是数值对象而不是字符串。
- 在“数字格式”对话框中,从“类型”下拉列表中选择“货币”。然后从“语言环境”下拉列表中选择“英语(美国)”,如图 2 所示。
图 2:“数字格式”对话框 |
- 单击“确定”。
数值转换器出现在“属性”窗口的 converter 属性中和“概要”窗口中。
- 将一个“数值转换器”从组件面板拖放到 Converted to Euros 标签旁边的“静态文本”上。
- 在“数字格式”对话框中,从“类型”下拉列表中选择“货币”,然后从“语言环境”下拉列表中选择“德语(德国)”。
- 单击“确定”。
使用日期时间转换器
- 将一个“日期时间转换器”从组件面板拖放到 Date and Time 标签旁边的“静态文本”上。
“日期时间转换器”出现在“概要”窗口中和“属性”窗口的 converter 属性中。
- 在“概要”窗口中,选择
dateTimeConverter1。
- 在转换器所在的“属性”窗口中,单击
pattern 属性的省略号按钮。
- 在“模式”字段中键入
EEE, d MMM yyyy HH:mm:ss zzzz,如图 3 所示,然后单击“确定”。该值出现在“属性”窗口的 pattern 属性中。
图 3:日期时间转换器模式 |
处理转换错误
将转换器与组件关联时,组件数据可能无法转换为指定的数据类型。如果出现此情况,则转换过程失败,且会停止页面处理。通过将消息附加到组件,可以在出现转换错误时通知用户。
- 从组件面板的“基本”类别中,将一个“消息”组件拖放到 Date and Time 标签的下方。
- 按住 Ctrl+Shift 组合键,从“消息”组件拖动一条直线到“文本字段”组件。
此时“消息”组件的文本变为 textField1 的消息摘要,如图 4 所示。
图 4:用于处理转换错误的消息组件 |
添加代码
- 双击 Convert 按钮,在 Java 编辑器中打开其源代码。
- 将以下两行添加到紧邻
button1_action 方法的上方。
| 代码样例 1:将美元兑换为欧元的常数值 |
// constant value for dollars to euros exchange
private static final double us2euros = 0.7;
|
- 将以下代码(以粗体显示)添加到
button1_action 方法中,但是,请注意计算日期的语句将包含语法错误,因为文件尚未包括 Date 类的 import 语句。将在下一步中添加 import 语句。
插入代码后,可以按 Ctrl-Shift-F 组合键自动重新设置代码格式。
| 代码样例 2:用于显示欧元和时间的代码 |
public String button1_action( ) {
// get the amount of dollars the user entered
Number dollars = (Number) textField1.getValue();
// exchange the dollars for euros
double euros = dollars.doubleValue() * us2euros;
// display the amount of euros
staticText1.setValue(new Double(euros));
// figure out the date and time
Date date = new Date();
staticText2.setValue(date);
return null;
}
|
- 在 Java 编辑器中单击鼠标右键,然后选择“修复导入”。
此时,Date 类的匹配类将会显示在对话框中。
- 为 "Date" 选择 "java.util.Date",然后单击“确定”。
测试应用程序
- 运行应用程序。
- 输入各种金额的字符串,如 $10。请注意以下规则:
- 如果输入字符串中的第一个字符不是货币符号(在本例中为 $)或者货币符号与第一个数字之间有空格,则转换器将抛出异常。消息组件将显示错误。
- 可以将逗号用作分隔符,例如 $1,234,但逗号不是必需的。放在错误位置中的逗号(甚至是放在小数点的右侧)将被忽略。转换后逗号将重新显示在正确的位置。
- 小数点右侧输入两位以上的数字,会舍入到最接近的美分。这是特定于语言环境的,会因语言环境的不同而有所不同(例如,日本和意大利的货币值就很少以小数形式显示)。
图 5 显示了输入 $100 时的结果。
图 5:显示转换结果的页 |
图 6 显示了输入不带 $ 的 100 时的结果。
图 6:显示转换错误的页 |
使用转换器执行更多操作
试试看。数值转换器的 pattern 属性用于确定数值的外观。尝试在 ConverterExample 应用程序中指定不同的模式。有关设置数值格式的详细信息,请参阅 Java 教程中的 定制格式一课。
试试看。日期时间转换器的 pattern 属性用于确定日期和时间的格式。尝试指定不同的模式。有关设置日期和时间格式的详细信息,请参阅 Java 教程中的 定制格式一课。
试试看。应用程序开发者使用验证器检查组件的本地值是否在某个范围内。验证器在处理组件值的功能上与转换器类似。但与转换器不同的是,验证器不会将输入数据转换为非字符串类。验证器组件面板上具有以下三种可供您使用的验证器:
尝试将转换器和验证器绑定到同时需要转换和范围检查的组件。
另请参见:
- 使用验证器,以查看使用双精度范围验证器和双精度转换器的示例。
- 使用消息组件,以查看使用长整型范围验证器和整数转换器的示例。
此页的最新修改时间:2006 年 1 月 25 日
|