Класс DefaultTableModel
- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- javax.swing.table.DefaultTableModel
- Все реализованные интерфейсы:
-
Serializable,TableModel
public class DefaultTableModel extends AbstractTableModel implements Serializable
Это реализация TableModel, которая использует Vector из Vectors для хранения объектов значений ячеек.
Предупреждение: DefaultTableModel возвращает класс столбца Object. При использовании DefaultTableModel с TableRowSorter, это приведёт к интенсивному использованию toString, что для не-String типов данных является дорогостоящим. Если вы используете DefaultTableModel с TableRowSorter, настоятельно рекомендуется переопределить getColumnClass для возврата соответствующего типа.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. Пожалуйста, ознакомьтесь с XMLEncoder.
- См. также:
-
TableModel,getDataVector(), Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Vector | columnIdentifiers | Массив идентификаторов столбцов. |
protected Vector<Vector> | dataVector | Вектор векторов, содержащий объекты значений |
Поля, объявленные в классе javax.swing.table.AbstractTableModel
listenerList Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DefaultTableModel() | Создаёт стандартную таблицу нулевой ширины и нулевой высоты. |
DefaultTableModel(int rowCount,
int columnCount) | Создаёт таблицу с |
DefaultTableModel(Object[][] data,
Object[] columnNames) | Создаёт таблицу и инициализирует её, передавая |
DefaultTableModel(Object[] columnNames,
int rowCount) | Создаёт таблицу с количеством столбцов, равным количеству элементов в |
DefaultTableModel(Vector<?> columnNames,
int rowCount) | Создаёт таблицу с количеством столбцов, равным количеству элементов в |
DefaultTableModel(Vector<? extends Vector> data,
Vector<?> columnNames) | Создаёт таблицу и инициализирует её, передавая |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addColumn(Object columnName) | Добавляет столбец в модель. |
void | addColumn(Object columnName,
Object[] columnData) | Добавляет столбец в модель. |
void | addColumn(Object columnName,
Vector<?> columnData) | Добавляет столбец в модель. |
void | addRow(Object[] rowData) | Добавляет строку в конец модели. |
void | addRow(Vector<?> rowData) | Добавляет строку в конец модели. |
protected static Vector<Object> | convertToVector(Object[] anArray) | Возвращает вектор, содержащий те же объекты, что и массив. |
protected static Vector<Vector<Object>> | convertToVector(Object[][] anArray) | Возвращает вектор векторов, содержащий те же объекты, что и массив. |
int | getColumnCount() | Возвращает количество столбцов в этой таблице данных. |
String | getColumnName(int column) | Возвращает имя столбца. |
Vector<Vector> | getDataVector() | Возвращает вектор, содержащий значения данных таблицы. |
int | getRowCount() | Возвращает количество строк в этой таблице данных. |
Object | getValueAt(int row,
int column) | Возвращает значение атрибута для ячейки в строке |
void | insertRow(int row,
Object[] rowData) | Вставляет строку в позиции |
void | insertRow(int row,
Vector<?> rowData) | Вставляет строку в позиции |
boolean | isCellEditable(int row,
int column) | Возвращает true независимо от значений параметров. |
void | moveRow(int start,
int end,
int to) | Перемещает одну или несколько строк из диапазона |
void | newDataAvailable(TableModelEvent event) | Эквивалентно |
void | newRowsAdded(TableModelEvent e) | Обеспечивает, что новые строки имеют правильное количество столбцов. |
void | removeRow(int row) | Удаляет строку в позиции |
void | rowsRemoved(TableModelEvent event) | Эквивалентно |
void | setColumnCount(int columnCount) | Устанавливает количество столбцов в модели. |
void | setColumnIdentifiers(Object[] newIdentifiers) | Заменяет идентификаторы столбцов в модели. |
void | setColumnIdentifiers(Vector<?> columnIdentifiers) | Заменяет идентификаторы столбцов в модели. |
void | setDataVector(Object[][] dataVector,
Object[] columnIdentifiers) | Заменяет значение в переменной |
void | setDataVector(Vector<? extends Vector> dataVector,
Vector<?> columnIdentifiers) | Заменяет текущую переменную |
void | setNumRows(int rowCount) | Устарело, начиная с Java 2 Platform v1.3. |
void | setRowCount(int rowCount) | Устанавливает количество строк в модели. |
void | setValueAt(Object aValue,
int row,
int column) | Устанавливает значение объекта для ячейки в строке |
Методы, объявленные в классе javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
dataVector
protected Vector<Vector> dataVector
Вектор значений Vector Vectors Object.
columnIdentifiers
protected Vector columnIdentifiers
Вектор идентификаторов столбцов.
Конструкторы
DefaultTableModel
public DefaultTableModel()
Создаёт таблицу по умолчанию DefaultTableModel, которая содержит ноль столбцов и ноль строк.
DefaultTableModel
public DefaultTableModel(int rowCount,
int columnCount) Создаёт DefaultTableModel с rowCount и columnCount значениями типа null.
- Параметры:
-
rowCount- количество строк в таблице -
columnCount- количество столбцов в таблице - См. также:
setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Vector<?> columnNames,
int rowCount) Создаёт DefaultTableModel с количеством столбцов, равным количеству элементов в columnNames , и rowCount значениями типа null . Имена столбцов будут взяты из вектора columnNames.
- Параметры:
-
columnNames- вектор, содержащий имена новых столбцов; если этоnull, то модель не содержит столбцов -
rowCount- количество строк в таблице - См. также:
-
setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>),setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Object[] columnNames,
int rowCount) Создаёт DefaultTableModel с количеством столбцов, равным количеству элементов в массиве columnNames, и rowCount значениями типа null . Имена столбцов будут взяты из массива columnNames.
- Параметры:
-
columnNames- массив, содержащий имена новых столбцов; если этоnull, то модель не содержит столбцов -
rowCount- количество строк в таблице - См. также:
-
setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>),setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Vector<? extends Vector> data,
Vector<?> columnNames) Создаёт DefaultTableModel и инициализирует таблицу, передавая data и columnNames методу setDataVector.
- Параметры:
-
data- данные таблицы, вектор векторов значений типаObject -
columnNames- вектор, содержащий имена новых столбцов - См. также:
-
getDataVector(),setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
DefaultTableModel
public DefaultTableModel(Object[][] data,
Object[] columnNames) Создаёт DefaultTableModel и инициализирует таблицу, передавая data и columnNames методу setDataVector . Первый индекс в массиве Object[][] - индекс строки, второй - индекс столбца.
- Параметры:
-
data- данные таблицы -
columnNames- имена столбцов - См. также:
-
getDataVector(),setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
Методы
getDataVector
public Vector<Vector> getDataVector()
Возвращает Vector Vectors, содержащий значения данных таблицы. Векторы во внешнем векторе представляют собой строки значений. Другими словами, чтобы получить ячейку в строке 1, столбце 5:
((Vector)getDataVector().elementAt(1)).elementAt(5);
- Возвращает:
- вектор векторов, содержащих значения данных таблицы
- См. также:
-
newDataAvailable(javax.swing.event.TableModelEvent),newRowsAdded(javax.swing.event.TableModelEvent),setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
setDataVector
public void setDataVector(Vector<? extends Vector> dataVector,
Vector<?> columnIdentifiers) Заменяет текущее значение dataVector на новое Vector строк, dataVector. Каждая строка представлена в dataVector как Vector Object значений. columnIdentifiers — это имена новых столбцов. Первое имя в columnIdentifiers сопоставлено столбцу 0 в dataVector. Каждая строка в dataVector корректируется, чтобы соответствовать количеству столбцов в columnIdentifiers, либо обрезая Vector, если оно слишком длинное, либо добавляя null значений, если оно слишком короткое.
Обратите внимание, что передача значения null для dataVector приводит к неопределённому поведению и, возможно, к исключению.
- Параметры:
-
dataVector- новый вектор данных -
columnIdentifiers- имена столбцов - См. также:
getDataVector()
setDataVector
public void setDataVector(Object[][] dataVector,
Object[] columnIdentifiers) Заменяет значение в dataVector экземпляре на значения в массиве dataVector. Первый индекс в массиве Object[][] — индекс строки, второй — индекс столбца. columnIdentifiers — имена новых столбцов.
- Параметры:
-
dataVector- новый вектор данных -
columnIdentifiers- имена столбцов - См. также:
setDataVector(Vector, Vector)
newDataAvailable
public void newDataAvailable(TableModelEvent event)
Эквивалентно fireTableChanged.
- Параметры:
-
event- событие изменения
newRowsAdded
public void newRowsAdded(TableModelEvent e)
Обеспечивает, что новые строки имеют правильное количество столбцов. Это достигается с помощью метода setSize в Vector, который обрезает слишком длинные векторы и добавляет null элементы, если они слишком короткие. Этот метод также отправляет уведомление о tableChanged всем слушателям.
- Параметры:
-
e- событиеTableModelEvent, описывающее, где были добавлены строки. Еслиnull, предполагается, что все строки были добавлены как новые - См. также:
getDataVector()
rowsRemoved
public void rowsRemoved(TableModelEvent event)
Эквивалентно fireTableChanged.
- Параметры:
-
event- событие изменения
setNumRows
public void setNumRows(int rowCount)
Устарело начиная с Java 2 платформы v1.3. Используйте setRowCount вместо этого.
- Параметры:
-
rowCount- новое количество строк
setRowCount
public void setRowCount(int rowCount)
Устанавливает количество строк в модели. Если новый размер больше текущего, новые строки добавляются в конец модели. Если новый размер меньше текущего, все строки с индексом rowCount и выше удаляются.
- Параметры:
-
rowCount- количество строк в модели - С момента:
- 1.3
- См. также:
setColumnCount(int)
addRow
public void addRow(Vector<?> rowData)
Добавляет строку в конец модели. Новая строка будет содержать null значения, если не указано rowData. Будет сгенерировано уведомление о добавлении строки.
- Параметры:
-
rowData- необязательные данные добавляемой строки
addRow
public void addRow(Object[] rowData)
Добавляет строку в конец модели. Новая строка будет содержать null значения, если не указано rowData. Будет сгенерировано уведомление о добавлении строки.
- Параметры:
-
rowData- необязательные данные добавляемой строки
insertRow
public void insertRow(int row,
Vector<?> rowData) Вставляет строку в row модели. Новая строка будет содержать null значения, если не указано rowData. Будет сгенерировано уведомление о добавлении строки.
- Параметры:
-
row- индекс строки для вставки -
rowData- необязательные данные добавляемой строки - Исключения:
-
ArrayIndexOutOfBoundsException- если строка была некорректной
insertRow
public void insertRow(int row,
Object[] rowData) Вставляет строку в row модели. Новая строка будет содержать null значения, если не указано rowData. Будет сгенерировано уведомление о добавлении строки.
- Параметры:
-
row- индекс строки для вставки -
rowData- необязательные данные добавляемой строки - Исключения:
-
ArrayIndexOutOfBoundsException- если строка была некорректной
moveRow
public void moveRow(int start,
int end,
int to) Перемещает одну или несколько строк из диапазона включительно start до end в to положение в модели. После перемещения строка, которая была с индексом start, будет находиться с индексом to. Этот метод отправит уведомление о tableChanged всем слушателям.
Examples of moves:
1. moveRow(1,3,5);
a|B|C|D|e|f|g|h|i|j|k - before
a|e|f|g|h|B|C|D|i|j|k - after
2. moveRow(6,7,1);
a|b|c|d|e|f|G|H|i|j|k - before
a|G|H|b|c|d|e|f|i|j|k - after - Параметры:
-
start- начальный индекс перемещаемой строки -
end- конечный индекс перемещаемой строки -
to- место назначения перемещаемых строк - Исключения:
-
ArrayIndexOutOfBoundsException- если какие-либо элементы будут перемещены за пределы диапазона таблицы
removeRow
public void removeRow(int row)
Удаляет строку с row из модели. Уведомление об удалении строки будет отправлено всем слушателям.
- Параметры:
-
row- индекс строки для удаления - Исключения:
-
ArrayIndexOutOfBoundsException- если строка была некорректной
setColumnIdentifiers
public void setColumnIdentifiers(Vector<?> columnIdentifiers)
Заменяет идентификаторы столбцов в модели. Если количество newIdentifier больше текущего количества столбцов, новые столбцы добавляются в конец каждой строки в модели. Если количество newIdentifier меньше текущего количества столбцов, все дополнительные столбцы в конце строки удаляются.
- Параметры:
-
columnIdentifiers- вектор идентификаторов столбцов. Еслиnull, установите модели количество столбцов в ноль - См. также:
setNumRows(int)
setColumnIdentifiers
public void setColumnIdentifiers(Object[] newIdentifiers)
Заменяет идентификаторы столбцов в модели. Если количество newIdentifier больше текущего количества столбцов, новые столбцы добавляются в конец каждой строки в модели. Если количество newIdentifier меньше текущего количества столбцов, все дополнительные столбцы в конце строки удаляются.
- Параметры:
-
newIdentifiers- массив идентификаторов столбцов. Еслиnull, установите модели количество столбцов в ноль - См. также:
setNumRows(int)
setColumnCount
public void setColumnCount(int columnCount)
Устанавливает количество столбцов в модели. Если новый размер больше текущего, новые столбцы добавляются в конец модели со значениями null ячеек. Если новый размер меньше текущего, все столбцы с индексом columnCount и выше удаляются.
- Параметры:
-
columnCount- новое количество столбцов в модели - С момента:
- 1.3
- См. также:
setColumnCount(int)
addColumn
public void addColumn(Object columnName)
Добавляет столбец в модель. Новый столбец будет иметь идентификатор columnName, который может быть null. Этот метод отправит уведомление о tableChanged всем слушателям. Этот метод является оберткой для addColumn(Object, Vector), который использует null в качестве вектора данных.
- Параметры:
-
columnName- идентификатор добавляемого столбца
addColumn
public void addColumn(Object columnName,
Vector<?> columnData) Добавляет столбец в модель. Новый столбец будет иметь идентификатор columnName, который может быть null. columnData — это необязательный вектор данных для столбца. Если он null, столбец заполняется значениями null. В противном случае новые данные будут добавлены в модель, начиная с первого элемента, переходящего в строку 0 и т. д. Этот метод отправит уведомление о tableChanged всем слушателям.
- Параметры:
-
columnName- идентификатор добавляемого столбца -
columnData- необязательные данные добавляемого столбца
addColumn
public void addColumn(Object columnName,
Object[] columnData) Добавляет столбец в модель. Новый столбец будет иметь идентификатор columnName. columnData — это необязательный массив данных для столбца. Если он null, столбец заполняется значениями null. В противном случае новые данные будут добавлены в модель, начиная с первого элемента, переходящего в строку 0 и т. д. Этот метод отправит уведомление о tableChanged всем слушателям.
- Параметры:
-
columnName- идентификатор вновь созданной колонки -
columnData- новые данные для добавления в колонку - См. также:
addColumn(Object, Vector)
getRowCount
public int getRowCount()
Возвращает количество строк в этой таблице данных.
- Задано в:
-
getRowCountв интерфейсеTableModel - Возвращает:
- количество строк в модели
- См. также:
TableModel.getColumnCount()
getColumnCount
public int getColumnCount()
Возвращает количество столбцов в этой таблице данных.
- Задано в:
-
getColumnCountв интерфейсеTableModel - Возвращает:
- количество столбцов в модели
- См. также:
TableModel.getRowCount()
getColumnName
public String getColumnName(int column)
Возвращает имя колонки.
- Задано в:
-
getColumnNameв интерфейсеTableModel - Переопределяет:
-
getColumnNameв классеAbstractTableModel - Параметры:
-
column- запрашиваемый столбец - Возвращает:
- имя этой колонки, используя строковое значение соответствующего члена в
columnIdentifiers. Если вcolumnIdentifiersнет записи для этого индекса, возвращает имя по умолчанию, предоставленное суперклассом.
isCellEditable
public boolean isCellEditable(int row,
int column) Возвращает true независимо от значений параметров.
- Задано в:
-
isCellEditableв интерфейсеTableModel - Переопределяет:
-
isCellEditableв классеAbstractTableModel - Параметры:
-
row- строка, значение которой необходимо запросить -
column- столбец, значение которого необходимо запросить - Возвращает:
- true
- См. также:
setValueAt(java.lang.Object, int, int)
getValueAt
public Object getValueAt(int row,
int column) Возвращает значение атрибута для ячейки в row и column.
- Задано в:
-
getValueAtв интерфейсеTableModel - Параметры:
-
row- строка, значение которой необходимо запросить -
column- столбец, значение которого необходимо запросить - Возвращает:
- объектное значение в указанной ячейке
- Исключения:
-
ArrayIndexOutOfBoundsException- если была предоставлена некорректная строка или столбец
setValueAt
public void setValueAt(Object aValue,
int row,
int column) Устанавливает значение объекта для ячейки в column и row. aValue — новое значение. Этот метод сгенерирует уведомление tableChanged.
- Задано в:
-
setValueAtв интерфейсеTableModel - Переопределяет:
-
setValueAtв классеAbstractTableModel - Параметры:
-
aValue- новое значение; может быть null -
row- строка, значение которой нужно изменить -
column- столбец, значение которого нужно изменить - Исключения:
-
ArrayIndexOutOfBoundsException- если была предоставлена некорректная строка или столбец - См. также:
-
TableModel.getValueAt(int, int),TableModel.isCellEditable(int, int)
convertToVector
protected static Vector<Object> convertToVector(Object[] anArray)
Возвращает вектор, содержащий те же объекты, что и массив.
- Параметры:
-
anArray- массив для преобразования - Возвращает:
- новый вектор; если
anArray—null, возвращаетnull
convertToVector
protected static Vector<Vector<Object>> convertToVector(Object[][] anArray)
Возвращает вектор векторов, содержащих те же объекты, что и массив.
- Параметры:
-
anArray- двумерный массив для преобразования - Возвращает:
- новый вектор векторов; если
anArray—null, возвращаетnull
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/table/DefaultTableModel.html