在我们的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组件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top