410013796724260
• Webmoney
R335386147728
Z369087728698
в помощь разработчикам Swing-приложений
Описание компонента GridВизуальный компонент таблицы Grid библиотеки base-gui.jar включает интерфейсы и классы пакета org.jabricks.basegui.grid, представленные в следующей таблице :
Табличный компонент Grid предназначен для представления ограниченного количества записей в интерфейсе приложения. Grid реализует интерфейс IGrid. Класс GridModel используется в качестве модели данных таблицы. Компонент Grid локализован и позволяет без «перезагрузки» формы определить заголовки колонок таблицы согласно текущему значению языка (Locale). Классы визуализаторов позволяют настроить представление значений разных типов в ячейках таблицы. Конструкторы класса GridКомпонент таблицы Grid имеет три конструктора : public Grid(Class<?>[] classes, String[] col_names); public Grid(Class<?>[] classes, String[] col_names, String[] col_captions); public Grid(GridModel grid_model); В качестве параметров первый и второй конструкторы получают массивы классов (classes), наименований колонок (col_names) и заголовков колонок (col_captions); первый конструктор использует col_names в качестве col_captions. Наименования колонок позволяют переопределить локализованые заголовки в режиме run-time без перезагрузки формы с таблицей. Третий конструктор позволяет создать объект таблицы с определенной моделью данных grid_model. Листинг интерфейса IGridВ листинге интерфейса IGrid представлены методы управления таблицей : public interface IGrid { public JPanel asWidget(); public JTable getTable(); public GridModel getModel(); public void setColumnsAlign (final int[] align); public void setColumnsWidth (final int[] width); public void setLocale (final Properties props); public void addCheckBoxEditor (final int column); public int[] getCheckedRows (); public void setDefaultRenderer (Class<?> clazz, TableCellRenderer renderer); public void setReorderingAllowed(boolean allowed); public void addRecords (final Object[][] data); public void addRecords (Vector<Vector<Object>> data); public void addRecord (final int row , final Object[] record); public void addRecord (final Object[] record); public void updateRecord (final int row, final Object[] record); public void delRecord (final int row); public void delRecords (final int[] rows); } asWidget () getTable () getModel setColumnsAlign (int[] align) setColumnsWidth (int[] width) setLocale (final Properties props) addCheckBoxEditor (int) getCheckedRows setDefaultRenderer (clazz, renderer) setReorderingAllowed(boolean allowed) addRecords addRecord updateRecord (final int row, final Object[] record) delRecord (final int row) delRecords (final int[] rows) Модель данных GridModelКласс GridModel, расширяющий свойства класса AbstractTableModel, реализует модель данных таблицы. Через GridModel можно также управлять записями таблицы. В листинге представлены методы модели данных. Закомментированные строки с аннотацией @Override показывают переопределенные методы родительского класса AbstractTableModel. // Конструктор класса GridModel(Class<?>[] classes, String[] columnsCaption); /** * Дескриптором @Override отмечены переопределенные * методы родительского класса AbstractTableModel */ // Количество колонок в таблице // @Override public int getColumnCount(); // Количество строк в таблице // @Override public int getRowCount(); // Чтение значения в ячейке // @Override public Object getValueAt(int row, int column); // Определение значения ячейки // @Override public void setValueAt(Object obj, int row, int column); // Чтение заголовка колонки // @Override public String getColumnName(int column); // Метод определения типа значения в колонке // @Override public Class<?> getColumnClass(int column); // Выравнивание значений в ячейках public void setColumnsAlign(final int[] align); public int[] getColumnsAlign() // Определение заголовка колонки public void setColumnCaption(int column, String caption); // Функция проверки редактиреуемости ячейки public boolean isCellEditable(int row, int column); // Метод определения редактируемой колонки public void setColumnEditable(int column); // Метод определения набора данных public void setTableData(Vector<Vector<Object>> tableData); // Метод чтения данных public Vector<Vector<Objec>> getTableData(); /* * Методы управления редактируемой колонкой * с компонентом JCheckBox */ public int getCheckBoxEditorColumn(); public void setCheckBoxEditorColumn(final int column); Классы CheckBoxCellEditor, BooleanListenerКласс CheckBoxCellEditor определяет формирование редактируемой ячейки таблицы. BooleanListener реализует интерфейсы методов TableModelListener. В совокупности данные классы позволяют определить в таблице колонку с редактируемыми ячейками типа JCheckBox. Следующий пример демонстрирует определение третьей (отсчет от 0) редактируемой колонки с компонентами типа JCheckBox с использованием метода addCheckBoxEditor класса Grid : Grid grid = new Grid(classes, names, titles); grid.addCheckBoxEditor(2); Пример использования GridАрхив base-gui-examples.zip включает 2 демонстрационных примера использования таблицы Grid :
В примерах демонстрируется представление набора данных, добавление и удаление записей, выделение записей и подключение собственного визуализатора. |