logo
Методичка Java

Мастер создания компонента в NetBeans

Рассмотрим подробнее процесс создания собственного компонента. В NetBeans для этого необходимо выбрать в меню File/New File…/JavaBeans Objects/JavaBeans Component и нажать кнопку Next>.

Создание компонента JavaBeans. Шаг 1

Далее в поле Class Name надо ввести имя компонента. В качестве примера мы введём MyBean. Затем обязательно следует выбрать пакет, в котором мы будем создавать компонент – мы выберем пакет нашего приложения. После чего следует нажать на кнопку Finish.

Создание компонента JavaBean. Шаг 2

Приведём код получившейся заготовки:

/*

* MyBean.java

*

* Created on 30 Октябрь 2006 г., 23:16

*/

package java_gui_example;

import java.beans.*;

import java.io.Serializable;

/**

* @author В.Монахов

*/

public class MyBean extends Object implements Serializable {

public static final String PROP_SAMPLE_PROPERTY = "sampleProperty";

private String sampleProperty;

private PropertyChangeSupport propertySupport;

public MyBean() {

propertySupport = new PropertyChangeSupport(this);

}

public String getSampleProperty() {

return sampleProperty;

}

public void setSampleProperty(String value) {

String oldValue = sampleProperty;

sampleProperty = value;

propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY,

oldValue, sampleProperty);

}

public void addPropertyChangeListener(PropertyChangeListener listener) {

propertySupport.addPropertyChangeListener(listener);

}

public void removePropertyChangeListener(PropertyChangeListener

listener) {

propertySupport.removePropertyChangeListener(listener);

}

}

В данном компоненте создана заготовка для строкового свойства sampleProperty. Геттер public String getSampleProperty() обеспечивает чтение значения свойства, а сеттер public void setSampleProperty(String value) обеспечивает установку нового значения.

Служебный объект private PropertyChangeSupport propertySupport обеспечивает поддержку работы с обработчиком события PropertyChange. Отметим, что “property change” означает “изменение свойства”. Это событие должно возникать при каждом изменении свойств нашего компонента.

Как уже говорилось, в каждом объекте, поддерживающем работу с неким событием (в нашем случае это событие PropertyChange), имеется список объектов-слушателей событий (listeners). Иногда их называют зарегистрированными слушателями. Методы с названием fireИмяСобытия (“fire” – “стрелять”, в данном случае – “выстрелить событием”) осуществляют поочерёдный вызов зарегистрированных слушателей из списка для данного события, передавая им событие на обработку. В нашем случае это метод propertySupport.firePropertyChange. Сначала он обеспечивает создание объекта-события, если значение свойства действительно изменилось, а потом поочерёдно вызывает слушателей этого события для его обработки.

Методы

public void addPropertyChangeListener(PropertyChangeListener listener)

и

public void removePropertyChangeListener(PropertyChangeListener listener)

обеспечивают для компонента возможность добавления и удаления объекта слушателя - обработчика события Property Change.

Если требуется создать другие свойства или обеспечить добавление и удаление обработчиков других событий, можно воспользоваться соответствующим мастером. В узле Bean Patterns (“Pattern” означает “образец” ) следует правой кнопкой мыши вызвать всплывающее меню, и выбрать Add. А затем в зависимости от того, что необходимо, выбрать один из видов свойств (Property) или событий (Event). Об этом более подробно будет говориться далее.

Таким же образом удаляются свойства и события компонента.