Вопрос

В нашем приложении Swing мы используем автоматизированный инструмент тестирования в QA (QF-Test), который работает лучше при названии компонентов качелей. (вызывающий компонент.setname). Хотя их автоматические назначения наименований работают достаточно хорошо, мы вводим компоненты Swingx в проект, и это вызывает некоторые проблемы для инструмента.

Есть много потенциальных компонентов на экране (ваш типичный бизнес-прикладные экраны ввода данных, но и многие из них - приложение на уровне сложности ERP), какие параметры для именования компонентов Swing в достаточно ненавязчивой форме ?

Это было полезно?

Решение

Я обычно хранят поля в JPanel в свойствах на JPanel, как это:

Частный JLABEL FirstNameabel; частное jtextfield firstnameetextfield;

В конце процедуры, которые создают и устанавливают эти компоненты, вы можете запустить рутину, которая использует java.lang.reflect в петлю через каждое свойство панели. Если недвижимость спускается из класса Component, ты можешь позвонить setName на нем с именем собственности. Так например, оно закончится:

this.firstnamelabel.setname («ИЗМЕРНАМЕНАБЕЛЬ»); this.firstnameTextField.SetName («firstnameetextfield»);

... кроме сквозной java.lang.reflect

Вы также можете получить рутину осмотреть неровные имена имени переменных и замените его стандартным корпусом пробелами. Это сделало бы их более читаемыми.

Этот подход гарантирует, что независимо от того, какие компоненты вы добавляете в панель, они все получит дружественные имена.

Другие советы

Я обычно использую составное имя для всех моих компонентов; Имя построено на родительском имени (например, JDialog) и имя поля (получено по отражению). Это делает имена компонентов уникальными в большинстве случаев (у вас все еще могут быть конфликты в зависимости от того, как вы называете родителей и как вы их используете, например, если вы открываете несколько JInternalFrame И все имеют то же имя ...)

Я внедрил общую стратегию именования (что делает только что) в Guts-Gui..

Кстати, именование компонентов не только интересно для тестирования UI, но также может быть полезно для стратегий впрыска ресурсов (I18N компонентов).

Как вы строите интерфейс? Jformdesigner и, вероятно, большинство других редакторов позволяют автоматически устанавливать имя компонента, что очень удобно. Большую часть времени мне не нужно думать о именах компонентов вообще. Только исключения являются компонентами, которые не размещаются с jformdesigner.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top