Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Добавление в компонент новых свойств




 

В компонент можно добавить новое свойство. Пусть мы хотим задать свойство titleShift типа int – оно будет задавать высоту нашего заголовка., выбираем в окне Projects… для соответствующего компонента узел Bean Patterns и щелкаем по ним правой клавишей мыши. В появившемся всплывающем меню выбираем Add/Property, после чего в появившемся диалоге вводим имя и тип свойства.

 

Добавление в компонент свойства, слева – обычного, справа - массива

 

Пункты Bound (“связанное свойство”) и Constrained (“стеснённое свойство”) позволяют использовать опцию “Generate Property Change Support” – без её выбора они ни на что не влияют.

Свойства вида Bound – обычные свойства. При отмеченных опциях “Bound” и “Generate Property Change Support” автоматически добавляется код, генерирующий в компоненте событие PropertyChange при изменении свойства компонента. Именно таким образом была ранее создан средой NetBeans код для работы с событием PropertyChange.

Например, если мы добавим целочисленное свойство titleShift (“shift”- сдвиг) вида Bound, задающее сдвиг заголовка по вертикали, в исходный код компонента добавится следующий текст:

 

/**

* Holds value of property titleShift.

*/

private int titleShift;

 

/**

* Getter for property titleShift.

* @return Value of property titleShift.

*/

public int getTitleShift() {

return this.titleShift;

}

 

/**

* Setter for property titleShift.

* @param titleShift New value of property titleShift.

*/

public void setTitleShift(int titleShift) {

int oldTitleShift = this.titleShift;

this.titleShift = titleShift;

propertySupport.firePropertyChange ("titleShift",

new Integer (oldTitleShift),

new Integer (titleShift));

repaint();//добавлено вручную

}

 

Правда, как и в предыдущем случае, в автоматически сгенерированный код сеттера пришлось добавить оператор repaint().

 

Свойства вида Constrained требуют проверки задаваемого значения свойства на принадлежность к области допустимых значений. Если значение не удовлетворяет этому условию, возбуждается исключительная ситуация. При изменении таких свойств порождается событие VetoableChangeEvent. Слово Vetoable происходит от “Veto able” - способный на накладывание ограничения, накладывание вето.

 

При задании свойств - массивов во всплывающем меню, вызываемом правой кнопкой мыши в узле Bean Patterns, следует пользоваться опцией Add/Indexed Property. Например, если мы выбрали параметры так, как указано на правом рисунке, приведённом выше, будет добавлен следующий код:

 

/**

* Holds value of property arr.

*/

private double[] arr;

 

/**

* Indexed getter for property arr.

* @param index Index of the property.

* @return Value of the property at <CODE>index</CODE>.

*/

public double getArr(int index) {

return this.arr[index];

}

 

/**

* Getter for property arr.

* @return Value of property arr.

*/

public double[] getArr() {

return this.arr;

}

 

/**

* Indexed setter for property arr.

* @param index Index of the property.

* @param arr New value of the property at <CODE>index</CODE>.

*/

public void setArr(int index, double arr) {

this.arr[index] = arr;

propertySupport.firePropertyChange ("arr", null, null);

}

 

/**

* Setter for property arr.

* @param arr New value of property arr.

*/

public void setArr(double[] arr) {

double[] oldArr = this.arr;

this.arr = arr;

propertySupport.firePropertyChange ("arr", oldArr, arr);

}

 

После добавления нового свойства следует заново скомпилировать проект (Build main project – F11). При этом, если при визуальном проектировании (Design) выделить компонент jTitledPanel1, его новые свойства появятся в окне jTitledPanel1[JTitledPanel]-Properties/ Properties сразу после компиляции проекта.





Поделиться с друзьями:


Дата добавления: 2017-02-28; Мы поможем в написании ваших работ!; просмотров: 462 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

2188 - | 2139 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.