代码之家  ›  专栏  ›  技术社区  ›  Yishai

swing组件命名策略

  •  1
  • Yishai  · 技术社区  · 14 年前

    在我们的Swing应用程序中,我们在QA(Qf Test)中使用了一个自动化测试工具,当Swing组件被命名时,该工具工作得更好。(呼叫组件.setName). 尽管它们的自动名称分配工作得相当好,但我们正在将SwingX组件引入到项目中,这给工具带来了一些问题。

    屏幕上有很多潜在的组件(您典型的业务应用程序数据输入屏幕,但其中有很多-应用程序处于ERP的复杂性级别),有哪些选项可以以合理的不引人注目的方式命名swing组件?

    3 回复  |  直到 9 年前
        1
  •  1
  •   Erick Robertson    14 年前

    我通常将JPanel中的字段存储在JPanel的properties中,如下所示:

    private JLabel firstNameLabel;
    private JTextField firstNameTextField;
    

    在实例化和布局这些组件的例程结束时,可以运行一个使用 java.lang.reflect Component ,您可以拨打 setName 上面写着房产的名字。例如,它最终会调用:

    this.firstNameLabel.setName("firstNameLabel");
    this.firstNameTextField.setName("firstNameTextField");
    

    您还可以让例程检查变量的大小写名称,并将其替换为带空格的标准大小写。这将使它们更具可读性。

    这种方法将确保无论您向面板添加什么组件,它们都将获得友好的名称。

        2
  •  1
  •   jfpoilpret    14 年前

    我通常对所有组件使用一个复合名称;该名称基于父名称(例如 JDialog )以及字段名(通过反射获得)。这使得组件名称在大多数情况下是唯一的(根据您如何命名父级以及如何使用它们,例如,如果您打开多个 JInternalFrame 都有相同的名字……)

    我在中实现了一个通用的命名策略(仅此而已) Guts-GUI .

    顺便说一句,组件命名不仅对UI测试有意义,而且对资源注入策略(组件的i18n)也很有用。

        3
  •  0
  •   Carlos    14 年前

    你是如何构建界面的?JFormDesigner和其他大多数编辑器都允许自动设置组件的名称,这非常方便。大多数时候我根本不需要考虑组件名称。只有未使用JFormDesigner放置的组件例外。