» 搜索提示 
 
使用转换器
2006 年 1 月 [修订号:V2-3]
在本教程中,您将使用 Sun Java Studio Creator 集成开发环境 (integrated development environment, IDE) 中的转换器设置日期和货币格式。
 
目录
 
转换器的概念
设计应用程序
使用数值转换器
使用日期时间转换器
处理转换错误
添加代码
测试应用程序
使用转换器执行更多操作
[spacer] 此页上的内容适用于 Sun Java Studio Creator 2
 

转换器的概念

 
IDE 提供了一组转换器,您可以使用它们来转换组件数据。如果输入字段用于输入数值,则您很可能需要使用转换器。转换器也适用于设置日期、时间和货币值的格式。可以从组件面板的“转换器”类别下获得的标准转换器如下所示:
  • Big Decimal 转换器
  • 布尔转换器
  • 字节转换器
  • 日历转换器
  • 字符转换器
  • 日期时间转换器
  • 双精度转换器
  • 浮点转换器
  • 整数转换器
  • 长整型转换器
  • 数值转换器
  • 短整型转换器
  • Sql Timestamp 转换器
在标准转换器中,数值转换器和日期时间转换器这两种转换器具有自己的属性,您可以通过设置这些属性来指定数据的格式和类型。本教程介绍如何使用这两种转换器。有关转换模型的概念性细节的详细信息,请参见 J2EE 1.4 教程中题为转换模型的部分。
 

设计应用程序

 
  1. 创建一个新的 Web 应用程序项目,并将它命名为 ConverterExample

    图 1 显示了将在以下步骤中创建的页。

    图 1:页面设计
    图 1:页面设计
     
  2. 从组件面板的“基本”类别中,将一个“文本字段”组件拖放到页面上。将“文本字段”的 label 属性设置为 Dollar Amount:

    label 属性位于“属性”窗口的“外观”类别的下方。

  3. 通过选中文本字段“属性”窗口中的 required 复选框,将该属性设置为 True

    required 属性位于“属性”窗口中“数据”类别的下方。如果 required 属性的值为 True,则要求用户在输入字段中输入一个值。

  4. 将一个“按钮”组件放在“文本字段”组件的右侧。将按钮的 text 属性更改为 Convert

  5. 从组件面板的“基本”类别中拖动两个“标签”组件,并将它们放在页面上。按照以下形式,设置这些标签的 text 属性:

    • Converted to Euros:
    • Date and Time:

  6. 将“静态文本”组件放在 Converted to Euros 标签的旁边。

  7. 将另一个“静态文本”组件放置在 Date and Time 标签的旁边。
 

使用数值转换器

 
  1. 从组件面板的“转换器”类别中,将“数值转换器”拖放到“文本字段”组件上。

    数值转换器会指定“文本字段”组件返回的是数值对象而不是字符串。

  2. 在“数字格式”对话框中,从“类型”下拉列表中选择“货币”。然后从“语言环境”下拉列表中选择“英语(美国)”,如图 2 所示。

    图 2:“数字格式”对话框
    图 2:“数字格式”对话框
     
  3. 单击“确定”。

    数值转换器出现在“属性”窗口的 converter 属性中和“概要”窗口中。

  4. 将一个“数值转换器”从组件面板拖放到 Converted to Euros 标签旁边的“静态文本”上。

  5. 在“数字格式”对话框中,从“类型”下拉列表中选择“货币”,然后从“语言环境”下拉列表中选择“德语(德国)”。

  6. 单击“确定”。
 

使用日期时间转换器

 
  1. 将一个“日期时间转换器”从组件面板拖放到 Date and Time 标签旁边的“静态文本”上。

    “日期时间转换器”出现在“概要”窗口中和“属性”窗口的 converter 属性中。

  2. 在“概要”窗口中,选择 dateTimeConverter1

  3. 在转换器所在的“属性”窗口中,单击 pattern 属性的省略号按钮。

  4. 在“模式”字段中键入 EEE, d MMM yyyy HH:mm:ss zzzz,如图 3 所示,然后单击“确定”。该值出现在“属性”窗口的 pattern 属性中。

    图 3:日期时间转换器模式
    图 3:日期时间转换器模式
 

处理转换错误

 
将转换器与组件关联时,组件数据可能无法转换为指定的数据类型。如果出现此情况,则转换过程失败,且会停止页面处理。通过将消息附加到组件,可以在出现转换错误时通知用户。
  1. 从组件面板的“基本”类别中,将一个“消息”组件拖放到 Date and Time 标签的下方。

  2. 按住 Ctrl+Shift 组合键,从“消息”组件拖动一条直线到“文本字段”组件。

    此时“消息”组件的文本变为 textField1 的消息摘要,如图 4 所示。

    图 4:用于处理转换错误的消息组件
    图 4:用于处理转换错误的消息组件
 

添加代码

 
  1. 双击 Convert 按钮,在 Java 编辑器中打开其源代码。

  2. 将以下两行添加到紧邻 button1_action 方法的上方。

    代码样例 1:将美元兑换为欧元的常数值
     // constant value for dollars to euros exchange
        private static final double us2euros = 0.7;
     
     
  3. 将以下代码(以粗体显示)添加到 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;
    }
    
     
  4. 在 Java 编辑器中单击鼠标右键,然后选择“修复导入”。

    此时,Date 类的匹配类将会显示在对话框中。

  5. 为 "Date" 选择 "java.util.Date",然后单击“确定”。
 

测试应用程序

 
  1. 运行应用程序。

  2. 输入各种金额的字符串,如 $10。请注意以下规则:

    • 如果输入字符串中的第一个字符不是货币符号(在本例中为 $)或者货币符号与第一个数字之间有空格,则转换器将抛出异常。消息组件将显示错误。

    • 可以将逗号用作分隔符,例如 $1,234,但逗号不是必需的。放在错误位置中的逗号(甚至是放在小数点的右侧)将被忽略。转换后逗号将重新显示在正确的位置。

    • 小数点右侧输入两位以上的数字,会舍入到最接近的美分。这是特定于语言环境的,会因语言环境的不同而有所不同(例如,日本和意大利的货币值就很少以小数形式显示)。
     
    图 5 显示了输入 $100 时的结果。
     
    图 5:显示转换结果的页
    图 5:显示转换结果的页
     
    图 6 显示了输入不带 $ 的 100 时的结果。
     
    图 6:显示转换错误的页
    图 6:显示转换错误的页
 

使用转换器执行更多操作

 
试试看。数值转换器的 pattern 属性用于确定数值的外观。尝试在 ConverterExample 应用程序中指定不同的模式。有关设置数值格式的详细信息,请参阅 Java 教程中的定制格式一课。
 
试试看。日期时间转换器的 pattern 属性用于确定日期和时间的格式。尝试指定不同的模式。有关设置日期和时间格式的详细信息,请参阅 Java 教程中的定制格式一课。
 
试试看。应用程序开发者使用验证器检查组件的本地值是否在某个范围内。验证器在处理组件值的功能上与转换器类似。但与转换器不同的是,验证器不会将输入数据转换为非字符串类。验证器组件面板上具有以下三种可供您使用的验证器:
  • 双精度范围验证器
  • 长度验证器
  • 长整型范围验证器
 
尝试将转换器和验证器绑定到同时需要转换和范围检查的组件。
 
另请参见
  • 使用验证器,以查看使用双精度范围验证器和双精度转换器的示例。
  • 使用消息组件,以查看使用长整型范围验证器和整数转换器的示例。

 
此页的最新修改时间:2006 年 1 月 25 日