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-приложении рассмотрено на странице описания примера дерева. В примере демонстрируются методы добавления/удаления записей и определения собственного изображения записей-листьев. |