< 上一课 | 下一课 >

课程 1.2:添加和布局 EMPLOYEE 表

在此练习中,您将使用 Java 可视编辑器来将 JScrollPane 和 JTable 添加到应用程序。在稍后的练习中,您将对 JTable 编程以从返回公司目录中所有职员的列表的 Web Service 中获取数据。

添加 JTable 之后,您将使用 Java 可视编辑器的设计视图定制 JTable 的布局,使之符合下列规范:

  • 使 JTable 在水平方向上扩展为三个单元格且在垂直方向上扩展为两个单元格
  • 左边添加 15 像素的嵌入
  • 将 JTable 重命名为 employeesTable

在 Java 可视编辑器中打开 DirectoryApp.java 文件

要在 Java 可视编辑器中打开 DirectoryApp.java 文件:
  1. 在 Java 透视图的“包资源管理器”视图中,展开 MyDirectory 项目和 directory.client 包。
  2. 右键单击 DirectoryApp.java 文件,然后选择打开方式 > 可视编辑器。Java 可视编辑器会装入 Java 类并在图形画布区域上显示图案。
提示:
  • 要更改 Java 可视编辑器使用的外观,转至窗口 > 首选项 > Java > 可视编辑器并指定 Swing 外观。下次打开类时,该首选项将生效。本教程使用 Windows 外观。
  • 要使“可视编辑器”成为所有 Java 文件的缺省编辑器,可以单击窗口 > 首选项,然后转至工作台 > 文件关联页面以定义首选项。

在 JScrollPane 上添加 JTable

DirectoryApp.java 的主窗口将具有 JPanel 的 JFrame 用于它的主内容窗格。在我们的应用程序中将 JPanel 称为 jContentPane。已将 jContentPane 设置为使用一种称为 GridBagLayout 的布局管理器类型。GridBagLayout 是一种基于由可视组件占用的单元格网格的功能强大的布局方案。Java 可视编辑器通过显示网格边框使您能够便捷地使用 GridBagLayout。当您将新的组件放到网格上时,它还将显示放置标记,并且当您正在使用 GridBagLayout 调整组件大小或移动组件时,它将在这些组件上显示手柄标记。

要将 EMPLOYEE 表(javax.swing.JTable)添加至 DirectoryApp.java 用户界面:
  1. 在设计视图或 Java Bean 视图中右键单击 jContentPane,然后选择显示网格。红色的点线显示网格边框,而带数字的蓝色圆圈指示行号和列号。例如,注意新建按钮占用了第 1 行(网格 y)和第 3 列(网格 x)处的单元格。

    图形画布上的网格

  2. 在 Java 可视编辑器选用板中,选择 JScrollPane 上的 JTable JScrollPane 上的 JTable 图标 Swing 组件,它被归类到选用板的 Swing 组件抽屉中。
    提示: 缺省情况下,选用板折叠在设计区域的右边。可以调整选用板的大小以及移动它。
  3. 在网格(第 0 列,第 1 行)处的单元格上移动鼠标指针:

    将安放位置放在网格上

    • 当您在网格上移动鼠标指针时,鼠标指针将显示两个带数字的方框,根据鼠标指针的位置,它们告诉您鼠标指针在网格中的 x 坐标和 y 坐标。
    • 如果将鼠标指针直接悬浮在网格边框上,则可以创建新的行和列并且将对现有的行和列重新编号。这种情况下,鼠标指针上的黄色方框、网格之间的黄条以及黄色的列标签和行标签将指示此行为并且会指出放置将产生的影响。
  4. 左键单击以将 JScrollPane 和 JTable 放入第 0 列、第 1 行处的单元格中:

    放在网格上的表

使 JScrollPane 和 JTable 扩展为多个网格列和行

现在,需要使 JScrollPane(及其子 JTable)扩展为三列和两行以更好地调整间隔和大小。要使表扩展这些列和行:
  1. 在设计区域或 Java Bean 视图中选择 JScrollPane(因为刚才添加了该项,所以它应该还处于选中状态)。注意 JScrollPane 右边和底部的绿色小方框。您将使用这些调整大小的手柄标记来拖动 JScrollPane 以扩展为多个行和列。
  2. 在 JScrollPane 右边的绿色手柄标记上单击并按住鼠标左键。
  3. 将鼠标指针向右拖动,直到位置指示第 2 列、第 1 行。当您松开鼠标按键时,深灰色阴影也会指示组件将占用的单元格。

    拖至跨三个列的表

  4. 松开鼠标按键。JScrollPane 现在扩展为三列。
  5. 重复类似的过程以拖动 JScrollPane 底部的手柄标记,直到 JScrollPane 扩展到第 2 行:

    拖至跨两个列的表

定制 JScrollPane 在网格包中的间隔

GridBagLayout 管理器的另一个功能是您可以指定各种约束以进一步定制布局。例如,可以指定下列约束:
  • 锚点:可在单元格内对组件指定锚点的方向,它将影响用户调整应用程序时组件移动的方式。例如,可将组件定位在左上角、中间偏左、居中或右下角。
  • 填充:可指示组件在水平和/或垂直方向上占用其单元格内的所有可用空间。
  • 嵌入:可在组件的顶部、底部、左边和右边提供边距以在组件与网格边缘之间提供间隔。

要为 JScrollPane 定制锚点、填充和嵌入:

  1. 在设计视图或 Java Bean 视图中右键单击 JScrollPane 并选择定制布局

    jScrollPane 上的弹出菜单

    提示: 在为不同的组件选择和更改布局时,“定制布局”对话框可以一直处于打开状态。通过单击菜单栏中的“定制布局”按钮,可以随时打开“定制布局”对话框:


    “定制布局”菜单图标

  2. 在“定制布局”对话框的“组件”选项卡中,确保按下了“锚点居中”按钮。
  3. 确保按下了水平填充垂直填充两个按钮。
  4. 在左边添加 15(像素)的嵌入以使 JScrollPane 左边的间隔与应用程序上的其他可视组件一样。

    定制布局对话框

    例如,现在表就与过滤器标签对齐了。

    定制布局对话框

将新的 JTable 重命名为有用的值并设置它以选择单个行

因为稍后您将使用该表,所以重命名 JTable 实例及其 getter 方法将很有用。要重命名该表:
  1. 在 Java Bean 视图中,右键单击 jTable 组件并从弹出菜单中选择重命名字段

    jTable 上的弹出菜单

  2. 输入 employeesTable 并单击确定。JTable 现在的名称是 employeesTable,而用来对它进行实例化的方法为 getEmployeesTable。
  3. 设置表以只允许选择单个行:
    1. 在设计视图中选择 employeesTable。
    2. 在“属性”视图中,选择 selectionMode 属性并将它设置为 SINGLE_SELECTION。

      显示 JTable 上的 SINGLE_SELECTION 的属性视图

    3. 保存 DirectoryApp.java 文件。

课程检查点

在本课程中,您学习了如何使用可视编辑器以将表添加至现有用户界面。然后您学习了如何定制它的布局、放置和留空。

< 上一课 | 下一课 >