策略命名的Swing组件
-
26-09-2019 - |
题
在我们的Swing应用程序,我们使用的QA(QF-测试)的作品,当Swing组件被命名为更好的自动化测试工具。 (调用Component.setName)。虽然他们的名字自动分配的作用相当好,我们引入了SwingX组件插入项目并导致一些问题的工具。
有一个屏幕上有很多潜在的组件(典型的企业应用程序的数据输入屏幕,但他们中的很多 - 应用程序是上ERP的复杂程度),哪些选项存在于一个命名摆动组件合理地不显眼的方式?
解决方案
我通常存储在上的JPanel性质一个JPanel的字段,如下所示:
private JLabel firstNameLabel; private JTextField firstNameTextField;
目前的常规实例化并勾画出这些组件的端部,则可以运行一个例程,它使用通过对面板的各属性java.lang.reflect
循环。如果财产从类Component
下降,你可以调用它setName
与属性的名称。因此,例如,这将最终调用:
this.firstNameLabel.setName("firstNameLabel"); this.firstNameTextField.setName("firstNameTextField");
...除了通过java.lang.reflect
您也可以有常规检查变量的颠簸情况下的名称,并用空格标准的情况下进行更换。这将使它们更具有可读性。
此方法将确保无论你添加到面板哪些组件,它们都将得到友好的名称。
其他提示
我一般使用的化合物名称为我的所有部件;该名称在所述父名称建立(例如JDialog
)和字段名称(由反射获得)。这使得在大多数情况下,组件名称唯一的(你可能仍然有冲突,这取决于你如何命名的父母,以及如何使用它们,例如,如果你打开几个JInternalFrame
和所有具有相同的名称...)
我已经实现的通用命名策略(即做到了这一点)在胆量的GUI 。
顺便说,组件命名是不仅对UI测试有趣的,但它也可以是用于资源喷射策略(组分I18N)是有用的。
你是如何构建的界面? JFormDesigner,可能大多数其他编辑器允许自动设置组件的名称,这是非常方便的。大多数时候,我没有考虑在所有的组件名称。唯一的例外是未放置JFormDesigner组件。