从 VisualAge for Java 到 Visual Editor 的代码迁移

本主题提供有关从 VisualAge for Java 中迁移 Java 代码的信息。

当使用 Visual Editor for Java 对 Java 组件进行更改时,会更新源代码以反映这些更改。这些源代码更改反映在更改属性值的 set 方法中。但是,由 Visual Editor for Java 使用的某些信息未存储在属性中,这是因为那些信息只有在设计时才是必需的。此信息包括 Java bean 在自由格式面板上的位置。

要存储此信息以便重新打开 Visual Editor for Java 时 Java bean 位于同一位置,该信息被放入声明该 Java bean 的那一行上的注释中。以下语句显示了定位在 16,17 的 JFrame 组件:

private javax.swing.JFrame ivjJFrame = null; // @jve:visual-info
decl-index=0 visual-constraint="16,17"

表示组件位置的注释不是必需的,如果没有任何注释,则当打开 Visual Editor for Java 时会分配一个缺省位置。此缺省位置只适用于未包含在另一个 Java bean 内的顶级 Java bean,并且它不会影响容器内的组件位置。容器内组件的位置由容器的布局管理器和组件的界限或约束确定。

在 VisualAge for Java 中,顶级 Java bean(又称为自由格式部件)的位置不在源代码中。如果迁移使用 VisualAge for Java 的“可视化组合编辑器”(VCE)编写的文件,将使用缺省位置。如果要保留位置信息,则可以获取已装入到 VisualAge for Java 中的迁移实用程序。迁移实用程序将重新生成类,并且以注释格式存储位置。要获取该实用程序,请从 www.ibm.com/support/us/ 下载最新的 VisualAge for Java 可视化组合编辑器应用程序转换工具

此迁移实用程序是作为临时修订提供的,可以使用 VisualAge for Java 的 FixManager(工作空间 > 工具 > FixManager)来安装它。此实用程序将把使用 VisualAge for Java 的 VCE 开发的类迁移并导出为适合于 Visual Editor 的格式。在安装此补丁后,可以从项目、包或类的弹出菜单中选择 VCE 代码生成/导出...。选择此项将启动一个向导,该向导可以为先前用 VCE 保存的类重新生成代码。自由格式位置将以 Visual Editor 所使用的注释格式保存。

如果有连接,则在运行此实用程序之前,可以通过选择对每个事件使用一个内部类 VCE 代码生成选项来首先重新生成此代码。但是,由于 VisualAge for Java 中的某个错误,某些类将不能被转换成此样式。在本示例中,应该使用对所有事件使用一个内部类 VCE 代码生成选项。在代码生成完成后,向导还会提供将类导出至目录的选项。Visual Editor for Java 事件支持不会对不使用任何内部类 VCE 代码生成样式进行解析。


VCE 模式 1


VCE 模式 2

因为 VCE 维护它自己的 Java bean 及其属性值和关系的模型,所以它总是根据此模型以自顶向下的方式重新生成源代码。用户对源代码进行的任何修改均被限制为源代码中由注释 //user code begin {1}//user code end 定界的预定义用户代码点。并且,为了指示每次执行代码生成时都会重新生成 Java bean 的方法,会将行 /* WARNING: THIS METHOD WILL BE REGENERATED. */ 添加至方法注释。迁移实用程序有一个选项,该选项用来从导出的代码(而不是 VisualAge for Java 中的源代码)中除去 VCE 生成的这些注释,因为这些注释在 VCE 外部不再适用。但是,一旦从源代码中除去了用户代码点的注释,就不能在 VisualAge for Java 内使用用户代码。原因是这些注释的存在能够避免用户代码被覆盖。

Visual Editor for Java 不会对它的 Java bean 及其属性值和关系使用持久对象模型,而是每次都对源代码进行解析。因此,对用户代码点及指定方法重新生成的注释将不再适用,从而可以自由地对源代码进行修改。如果修改操作改变了源代码结构以致于 Visual Editor for Java 不再能够识别 Java bean 的结构,则在“设计”视图或 Java Bean 视图中可能会看不到它们。但是,不会改变源代码来适应编辑器的样式,您的更改将会保留。

上级主题:在 Visual Editor 中编辑 Java

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.