410013796724260
• Webmoney
R335386147728
Z369087728698
|
в помощь разработчикам Swing-приложений
Описание компонента дерева TreeAPI (Application Programmer Interface) визуального компонента дерева Tree базового модуля base-gui включает интерфейсы и классы пакета org.jabricks.basegui.tree, представленные в следующей таблице :
Компонент org.jabricks.basegui.tree.Tree позволяет представить в интерфейсе приложения иерархическую многоуровневую структуру записей, основой которых является базовый класс TreeRecord. API дерева (ITree) позволяет добавлять, обновлять и удалять записи в дереве. При выделении записи в дереве вызывается callback-метод интерфейса ITreeListener. Конструкторы класса TreeКомпонент дерева Tree имеет два конструктора : public Tree(); public Tree(final ITreeListener parent); Во втором конструкторе определяется родитель (parent), реализующий интерфейс ITreeListener. При выделении записи в компоненте дерева вызывается метод интерфейса onClickNode, в котором родителю передается объект выделенной в дереве записи. Листинг интерфейса ITreeВ листинге представлены методы управления деревом :
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JTree;
import javax.swing.tree.TreeNode;
public interface ITree
{
// Метод получения JTree в оболочке JScrollPane
public JComponent asWidget();
// Метод получения дерева JTree
public JTree getTree ();
// Реакция на количество нажатий клавишей мыши
public void setClickCount (final int cnt);
public int getClickCount();
// Метод получения выделенной записи
public Object getSelectedNodeObject();
// Метод получения выделенного узла дерева
public TreeNode getSelectedNode();
// Методы управления записями
public void addNodeObject (final Object object);
public void updateNodeObject (final TreeNode node);
public void deleteNodeObject (final TreeNode node);
// Метод загрузки в дерево набора данных
public void loadData (List<TreeRecord> list);
// Методы определения иконок для записей
public void setLeafIcon (final ImageIcon image);
public void setClosedIcon (final ImageIcon image);
public void setOpenIcon (final ImageIcon image);
}
asWidget () getTree () setClickCount (int) getSelectedNodeObject () getSelectedNode () addNodeObject (Object) updateNodeObject (TreeNode) deleteNodeObject (TreeNode) loadData (List<TreeRecord>) setLeafIcon (ImageIcon) setClosedIcon, setOpenIcon Листинг интерфейса ITreeListenerИнтерфейс ITreeListener включает единственный метод onClickNode, который должен быть переопределен в родительском классе, реализующим данный интерфейс. Данный метод вызывается каждый раз при выделении какой-либо записи в дереве. Таким образом, родительский класс получает информацию о выделенном в дереве объекте, которую может соответствующим образом сразу же обработать.
public interface ITreeListener
{
public void onClickNode (final TreeRecord node);
}
Класс TreeRecordБазовый класс TreeRecord включает 3 поля (идентификатор записи id, идентификатор родительской записи pid и наименование записи name) и методы Get/Set для управления их значениями. Для представления в интерфейсе дерева Tree наименования записи используется метод toString :
public class TreeRecord {
protected int id;
protected int pid;
protected String name;
public TreeRecord(){}
public TreeRecord(final int id, int pid, String name) {
this.id = id;
this.pid = pid;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
Примечание : в методе toString можно определить собственное текстовое представление записи в дереве. Базовый класс записи TreeRecord может быть расширен включением дополнительных полей и методов для отображения в интерфейсе дерева, как это представлено в примере. Пример использования TreeИспользование модуля base-gui для иерархического представления набора записей в дереве Tree в обычном java-приложении рассмотрено на странице описания примера дерева. В примере демонстрируются методы добавления/удаления записей и определения собственного изображения записей-листьев. |
