使用 Java 可视编辑器对 Java 组件进行更改时,将更新源代码来反映更改。源代码更改反映在更改属性值的 set 方法中。但是,Java 可视编辑器使用的某些信息由于只在设计时需要,所以未存储在属性中。该信息包含 Java bean 在自由曲面上的位置。
为存储此信息以便再次打开 Java 可视编辑器时 Java bean 位于相同位置,请将此信息放置在声明 Java bean 的行上的注释中。以下语句显示位于 16,17 的 JFrame 组件:
private javax.swing.JFrame ivjJFrame = null; // @jve:visual-info decl-index=0 visual-constraint="16,17"
表示组件位置的注释不是必需的,如果没有注释,那么会在打开 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 开发的类并将这些类导出为适合可视编辑器的格式。在安装该补丁后,您就可以从项目、包或类的弹出菜单选择 VCE 代码生成/导出...。选择该项将启动一个向导,该向导可重新生成先前已使用 VCE 保存的类的代码。自由格式位置以可视编辑器使用的注释格式保存。
如果您有连接,那么可以在运行此实用程序之前,先通过选择对每个事件使用内部类 VCE 代码生成选项来重新生成此代码。然而,由于 VisualAge for Java 中存在缺陷,所以某些类无法转换成此样式。在这种情况下,可使用对所有事件使用一个内部类 VCE 代码生成选项。在完成代码生成后,通过此向导还可以选择将类导出到目录中。Java 可视编辑器事件支持将不会解析不要使用任何内部类 VCE 代码生成样式。


由于 VCE 维护自己的 Java bean 模型及这些 Java bean 的属性值和关系,所以它总是会根据该模型以从上到下的顺序重新生成源代码。用户对源代码的任何修改都限制为预定义的用户代码点,这些代码点在源代码中以注释 //user code begin {1} 和 //user code end 分界。同样,为了表示在每次执行代码生成时都会为 Java bean 重新生成方法,会将行 /* WARNING: THIS METHOD WILL BE REGENERATED. */ 添加到方法注释中。迁移实用程序可以将这些 VCE 生成的注释从导出的代码(不是 VisualAge for Java 中的源代码)中除去,因为这些注释在 VCE 之外不再应用。但是,一旦从源代码中除去了用户代码点的注释,在 VisualAge for Java 中就无法使用该用户代码。原因是这些注释用于保护用户代码不被覆盖。
Java 可视编辑器不会将持久对象模型用于其 Java bean 以及这些 Java bean 的属性值和关系,而是每次都对源代码进行解析。因此,用户代码点以及用于指定重新生成方法的注释不再应用,用户可以自由修改源代码。如果修改更改了源代码结构以致 Java 可视编辑器无法再识别 Java bean 的结构,那么您在“设计”视图或 Java bean 视图中可能无法再看到它们。但是,源代码会改变以符合编辑器的样式,并且您的更改会保留。