| 
         Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое          | 
Компонентное программирование
12.4. Добавление в компонент новых свойств
В компонент можно добавить новое свойство. Пусть мы хотим задать свойство 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 сразу после компиляции проекта.
                             