Класс JTable
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTable
- Все реализованные интерфейсы:
- ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable
public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener
Класс JTable используется для отображения и редактирования обычных двумерных таблиц ячеек. См. Как использовать таблицы в Java Tutorial для пошаговой документации и примеров использования JTable.
Класс JTable имеет множество возможностей для настройки его отрисовки и редактирования, но предоставляет значения по умолчанию для этих функций, чтобы простые таблицы можно было легко настроить. Например, чтобы создать таблицу с 10 строками и 10 столбцами чисел:
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 10; }
public int getRowCount() { return 10;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table); JTable обычно размещаются внутри JScrollPane. По умолчанию, JTable будет изменять свою ширину таким образом, чтобы горизонтальная полоса прокрутки была не нужна. Чтобы включить горизонтальную полосу прокрутки, вызовите setAutoResizeMode(int) со значением AUTO_RESIZE_OFF. Обратите внимание, что если вы хотите использовать JTable в автономном представлении (вне JScrollPane) и хотите отобразить заголовок, вы можете получить его с помощью getTableHeader() и отобразить отдельно.
Для включения сортировки и фильтрации строк используйте RowSorter. Вы можете настроить сортировщик строк двумя способами:
- Непосредственно задайте
RowSorter. Например:table.setRowSorter(new TableRowSorter(model)). - Установите свойство
autoCreateRowSorterв значениеtrue, чтобыJTableсоздалRowSorterза вас. Например:setAutoCreateRowSorter(true).
При разработке приложений, использующих JTable, стоит уделить особое внимание структурам данных, которые будут представлять данные таблицы. DefaultTableModel — это реализация модели, которая использует Vector из Vector Object для хранения значений ячеек. Помимо копирования данных из приложения в DefaultTableModel, также возможно обернуть данные в методы интерфейса TableModel, чтобы данные можно было передать в JTable непосредственно, как в примере выше. Это часто приводит к более эффективным приложениям, потому что модель свободна выбирать внутреннее представление, которое лучше всего подходит для данных. Хорошее правило для принятия решения, использовать ли AbstractTableModel или DefaultTableModel, — использовать AbstractTableModel в качестве базового класса для создания подклассов и DefaultTableModel при отсутствии необходимости в создании подклассов.
Директория "TableExample" в демонстрационной области исходного распределения содержит несколько полных примеров использования JTable, описывающих, как JTable может использоваться для предоставления редактируемого представления данных, взятых из базы данных, и как изменить столбцы в представлении, чтобы использовать специализированные рендереры и редакторы.
Класс JTable использует исключительно целые числа для ссылки как на строки, так и на столбцы модели, которую он отображает. Класс JTable просто получает табличный диапазон ячеек и использует getValueAt(int, int) для получения значений из модели во время отрисовки. Важно помнить, что индексы столбцов и строк, возвращаемые различными методами JTable, относятся к JTable (представлению) и не обязательно совпадают с индексами, используемыми моделью.
По умолчанию столбцы можно переупорядочивать в JTable, чтобы столбцы представления отображались в другом порядке по сравнению с столбцами в модели. Это никак не влияет на реализацию модели: при переупорядочении столбцов JTable сохраняет новый порядок столбцов во внутреннем представлении и преобразует свои индексы столбцов перед запросом модели.
Таким образом, при написании TableModel, нет необходимости прослушивать события переупорядочения столбцов, поскольку модель будет запрошена в своей собственной системе координат независимо от того, что происходит в представлении. В демонстрационной области есть демонстрация алгоритма сортировки, использующего именно эту технику, чтобы ввести еще одну систему координат, в которой изменяется порядок строк, а не порядок столбцов.
Аналогично, при использовании функциональности сортировки и фильтрации, предоставляемой RowSorter, базовая TableModel не нуждается в знаниях о сортировке, а RowSorter будет обрабатывать ее. Необходимы преобразования координат при использовании методов, основанных на строках JTable с базовой TableModel. Все методы JTable, основанные на строках, относятся к RowSorter, что не обязательно совпадает с базовой TableModel. Например, выборка всегда определяется JTable, поэтому при использовании RowSorter вам необходимо выполнить преобразование с помощью convertRowIndexToView или convertRowIndexToModel. Следующее показывает, как преобразовать координаты из JTable в координаты базовой модели:
int[] selection = table.getSelectedRows();
for (int i = 0; i < selection.length; i++) {
selection[i] = table.convertRowIndexToModel(selection[i]);
}
// selection is now in terms of the underlying TableModel По умолчанию, если сортировка включена, JTable сохранит выделение и переменные высоты строк в терминах модели при сортировке. Например, если строка 0, в терминах базовой модели, выбрана в данный момент, после сортировки строка 0, в терминах базовой модели, будет выбрана. Визуально выделение может измениться, но в терминах базовой модели оно останется неизменным. Единственное исключение — если индекс модели больше не отображается или был удален. Например, если строка 0 в терминах модели была отфильтрована, выделение будет пустым после сортировки.
J2SE 5 добавляет методы к JTable для удобного доступа к некоторым общим потребностям печати. Простые новые методы print() позволяют быстро и легко добавить поддержку печати в ваше приложение. Кроме того, доступен новый метод getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) для более продвинутых потребностей печати.
Как и все классы JComponent, вы можете использовать InputMap и ActionMap, чтобы связать объект Action с KeyStroke и выполнить действие при определенных условиях.
Предупреждение: Swing не является потокобезопасным. Дополнительную информацию см. в Политике потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.
- См. также:
-
DefaultTableModel,TableRowSorter
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
protected class |
JTable.AccessibleJTable Этот класс реализует поддержку доступности для класса |
static class |
JTable.DropLocation Подкласс |
static class |
JTable.PrintMode Режимы печати, используемые при печати |
Вложенные классы/интерфейсы, унаследованные от класса javax.swing.JComponent
JComponent.AccessibleJComponent Вложенные классы/интерфейсы, унаследованные от класса java.awt.Container
Container.AccessibleAWTContainer Вложенные классы/интерфейсы, унаследованные от класса java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
AUTO_RESIZE_ALL_COLUMNS При всех операциях изменения размера пропорционально изменяет размер всех столбцов. |
static int |
AUTO_RESIZE_LAST_COLUMN При всех операциях изменения размера применяет корректировки только к последнему столбцу. |
static int |
AUTO_RESIZE_NEXT_COLUMN При корректировке столбца в пользовательском интерфейсе корректирует следующий столбец в противоположном направлении. |
static int |
AUTO_RESIZE_OFF Не производит автоматической корректировки ширины столбцов; вместо этого используется горизонтальная полоса прокрутки. |
static int |
AUTO_RESIZE_SUBSEQUENT_COLUMNS При корректировке в пользовательском интерфейсе изменяет последующие столбцы, сохраняя общую ширину; это поведение по умолчанию. |
protected boolean |
autoCreateColumnsFromModel Если значение истинно, таблица запросит |
protected int |
autoResizeMode Определяет, автоматически ли таблица изменяет ширину столбцов, чтобы занять всю ширину таблицы, и как это изменение выполняется. |
protected TableCellEditor |
cellEditor Объект активного редактора ячейки, который перезаписывает экранное пространство, занимаемое текущей ячейкой, и позволяет пользователю изменить ее содержимое. |
protected boolean |
cellSelectionEnabled Устарело начиная с Java 2 платформы v1.3. |
protected TableColumnModel |
columnModel
|
protected TableModel |
dataModel
|
protected Hashtable |
defaultEditorsByColumnClass Таблица объектов, которые отображают и редактируют содержимое ячейки, индексируемых по классу, как объявлено в |
protected Hashtable |
defaultRenderersByColumnClass Таблица объектов, которые отображают содержимое ячейки, индексируемых по классу, как объявлено в |
protected int |
editingColumn Идентифицирует столбец редактируемой ячейки. |
protected int |
editingRow Идентифицирует строку редактируемой ячейки. |
protected Component |
editorComp Если редактирование активное, |
protected Color |
gridColor Цвет сетки. |
protected Dimension |
preferredViewportSize Используется интерфейсом |
protected int |
rowHeight Высота в пикселях каждой строки таблицы. |
protected int |
rowMargin Высота в пикселях отступа между ячейками в каждой строке. |
protected boolean |
rowSelectionAllowed Истинно, если разрешен выбор строк в этой таблице. |
protected Color |
selectionBackground Цвет фона выделенных ячеек. |
protected Color |
selectionForeground Цвет переднего плана выделенных ячеек. |
protected ListSelectionModel |
selectionModel
|
protected boolean |
showHorizontalLines Таблица рисует горизонтальные линии между ячейками, если |
protected boolean |
showVerticalLines Таблица рисует вертикальные линии между ячейками, если |
protected JTableHeader |
tableHeader
|
Поля, унаследованные от класса javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW Поля, унаследованные от класса java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT Поля, унаследованные от интерфейса java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH Краткое описание конструкторов
| Конструктор и описание |
|---|
JTable() Создаёт таблицу по умолчанию, инициализированную по умолчанию моделью данных, моделью столбцов и моделью выбора. |
JTable(int numRows,
int numColumns) Создаёт таблицу с |
JTable(Object[][] rowData,
Object[] columnNames) Создаёт таблицу для отображения значений в двумерном массиве, |
JTable(TableModel dm) Создаёт таблицу, инициализированную |
JTable(TableModel dm,
TableColumnModel cm) Создаёт таблицу, инициализированную |
JTable(TableModel dm,
TableColumnModel cm,
ListSelectionModel sm) Создаёт таблицу, инициализированную |
JTable(Vector rowData,
Vector columnNames) Создаёт таблицу для отображения значений в |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
addColumn(TableColumn aColumn) Добавляет |
void |
addColumnSelectionInterval(int index0,
int index1) Добавляет столбцы с |
void |
addNotify() Вызывает метод |
void |
addRowSelectionInterval(int index0,
int index1) Добавляет строки с |
void |
changeSelection(int rowIndex,
int columnIndex,
boolean toggle,
boolean extend) Обновляет модели выделения таблицы в зависимости от состояния двух флагов: |
void |
clearSelection() Снимает выделение со всех выделенных столбцов и строк. |
void |
columnAdded(TableColumnModelEvent e) Вызывается при добавлении столбца в модель столбцов таблицы. |
int |
columnAtPoint(Point point) Возвращает индекс столбца, в котором находится |
void |
columnMarginChanged(ChangeEvent e) Вызывается при перемещении столбца из-за изменения отступа. |
void |
columnMoved(TableColumnModelEvent e) Вызывается при изменении расположения столбца. |
void |
columnRemoved(TableColumnModelEvent e) Вызывается при удалении столбца из модели столбцов таблицы. |
void |
columnSelectionChanged(ListSelectionEvent e) Вызывается при изменении модели выделения |
protected void |
configureEnclosingScrollPane() Если этот |
int |
convertColumnIndexToModel(int viewColumnIndex) Преобразует индекс столбца в представлении на |
int |
convertColumnIndexToView(int modelColumnIndex) Преобразует индекс столбца в модели таблицы на |
int |
convertRowIndexToModel(int viewRowIndex) Преобразует индекс строки в представлении в соответствующий индекс в базовой |
int |
convertRowIndexToView(int modelRowIndex) Преобразует индекс строки в |
protected TableColumnModel |
createDefaultColumnModel() Возвращает объект модели столбцов по умолчанию, который является |
void |
createDefaultColumnsFromModel() Создаёт столбцы по умолчанию для таблицы из данных модели, используя метод |
protected TableModel |
createDefaultDataModel() Возвращает объект модели таблицы по умолчанию, который является |
protected void |
createDefaultEditors() Создаёт редактирование ячеек по умолчанию для объектов, чисел и логических значений. |
protected void |
createDefaultRenderers() Создаёт визуализаторы ячеек по умолчанию для объектов, чисел, чисел с плавающей точкой, дат, логических значений и значков. |
protected ListSelectionModel |
createDefaultSelectionModel() Возвращает объект модели выделения по умолчанию, который является |
protected JTableHeader |
createDefaultTableHeader() Возвращает объект заголовка таблицы по умолчанию, который является |
static JScrollPane |
createScrollPaneForTable(JTable aTable) Устарело. Начиная с версии Swing 1.0.2, заменено на |
void |
doLayout() Вызывает перерасчёт строк и столбцов в этой таблице. |
boolean |
editCellAt(int row,
int column) Программно начинает редактирование ячейки в |
boolean |
editCellAt(int row,
int column,
EventObject e) Программно начинает редактирование ячейки в |
void |
editingCanceled(ChangeEvent e) Вызывается при отмене редактирования. |
void |
editingStopped(ChangeEvent e) Вызывается при завершении редактирования. |
AccessibleContext |
getAccessibleContext() Получает AccessibleContext, связанный с этой JTable. |
boolean |
getAutoCreateColumnsFromModel() Определяет, будет ли таблица создавать столбцы по умолчанию из модели. |
boolean |
getAutoCreateRowSorter() Возвращает |
int |
getAutoResizeMode() Возвращает режим автоматического изменения размера таблицы. |
TableCellEditor |
getCellEditor() Возвращает активный редактор ячейки, который равен |
TableCellEditor |
getCellEditor(int row,
int column) Возвращает подходящий редактор для ячейки, заданной |
Rectangle |
getCellRect(int row,
int column,
boolean includeSpacing) Возвращает прямоугольник для ячейки, расположенной на пересечении |
TableCellRenderer |
getCellRenderer(int row,
int column) Возвращает подходящий визуализатор для ячейки, заданной этой строкой и столбцом. |
boolean |
getCellSelectionEnabled() Возвращает true, если модели выделения строк и столбцов включены. |
TableColumn |
getColumn(Object identifier) Возвращает объект |
Class<?> |
getColumnClass(int column) Возвращает тип столбца, отображаемого в представлении в позиции столбца |
int |
getColumnCount() Возвращает количество столбцов в модели столбцов. |
TableColumnModel |
getColumnModel() Возвращает |
String |
getColumnName(int column) Возвращает имя столбца, отображаемого в представлении в позиции столбца |
boolean |
getColumnSelectionAllowed() Возвращает true, если столбцы можно выбирать. |
TableCellEditor |
getDefaultEditor(Class<?> columnClass) Возвращает редактор, который будет использоваться, когда редактор не был задан в |
TableCellRenderer |
getDefaultRenderer(Class<?> columnClass) Возвращает визуализатор ячеек, который будет использоваться, когда визуализатор не был задан в |
boolean |
getDragEnabled() Возвращает, включена ли автоматическая обработка перетаскивания. |
JTable.DropLocation |
getDropLocation() Возвращает расположение, которое этот компонент должен визуально указывать в качестве места выгрузки во время операции перетаскивания над компонентом, или |
DropMode |
getDropMode() Возвращает режим выгрузки для этого компонента. |
int |
getEditingColumn() Возвращает индекс столбца, содержащего ячейку, которая в данный момент редактируется. |
int |
getEditingRow() Возвращает индекс строки, содержащей ячейку, которая в данный момент редактируется. |
Component |
getEditorComponent() Возвращает компонент, обрабатывающий сеанс редактирования. |
boolean |
getFillsViewportHeight() Возвращает значение, показывающее, будет ли эта таблица всегда достаточно большой, чтобы заполнить высоту окружающего представления. |
Color |
getGridColor() Возвращает цвет, используемый для рисования линий сетки. |
Dimension |
getIntercellSpacing() Возвращает горизонтальный и вертикальный промежуток между ячейками. |
TableModel |
getModel() Возвращает |
Dimension |
getPreferredScrollableViewportSize() Возвращает предпочтительный размер представления для этой таблицы. |
Printable |
getPrintable(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat) Возвращает |
int |
getRowCount() Возвращает количество строк, которые могут быть отображены в |
int |
getRowHeight() Возвращает высоту строки таблицы в пикселях. |
int |
getRowHeight(int row) Возвращает высоту ячеек в пикселях в |
int |
getRowMargin() Получает количество пустого места между ячейками в пикселях. |
boolean |
getRowSelectionAllowed() Возвращает true, если строки можно выбрать. |
RowSorter<? extends TableModel> |
getRowSorter() Возвращает объект, ответственный за сортировку. |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction) Возвращает |
boolean |
getScrollableTracksViewportHeight() Возвращает |
boolean |
getScrollableTracksViewportWidth() Возвращает false, если |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction) Возвращает приращение прокрутки (в пикселях), которое полностью отображает новую строку или столбец (в зависимости от ориентации). |
int |
getSelectedColumn() Возвращает индекс первого выбранного столбца, -1, если столбец не выбран. |
int |
getSelectedColumnCount() Возвращает количество выбранных столбцов. |
int[] |
getSelectedColumns() Возвращает индексы всех выбранных столбцов. |
int |
getSelectedRow() Возвращает индекс первой выбранной строки, -1, если строка не выбрана. |
int |
getSelectedRowCount() Возвращает количество выбранных строк. |
int[] |
getSelectedRows() Возвращает индексы всех выбранных строк. |
Color |
getSelectionBackground() Возвращает цвет фона для выделенных ячеек. |
Color |
getSelectionForeground() Возвращает цвет переднего плана для выделенных ячеек. |
ListSelectionModel |
getSelectionModel() Возвращает |
boolean |
getShowHorizontalLines() Возвращает true, если таблица рисует горизонтальные линии между ячейками, false — если не рисует. |
boolean |
getShowVerticalLines() Возвращает true, если таблица рисует вертикальные линии между ячейками, false — если не рисует. |
boolean |
getSurrendersFocusOnKeystroke() Возвращает true, если редактор должен получить фокус, когда нажатие клавиш активирует редактор. |
JTableHeader |
getTableHeader() Возвращает |
String |
getToolTipText(MouseEvent event) Переопределяет метод |
TableUI |
getUI() Возвращает объект L&F, который отрисовывает этот компонент. |
String |
getUIClassID() Возвращает суффикс, используемый для построения имени класса L&F, используемого для отрисовки этого компонента. |
boolean |
getUpdateSelectionOnSort() Возвращает true, если выбор должен быть обновлен после сортировки. |
Object |
getValueAt(int row,
int column) Возвращает значение ячейки по |
protected void |
initializeLocalVars() Инициализирует свойства таблицы значениями по умолчанию. |
boolean |
isCellEditable(int row,
int column) Возвращает true, если ячейка по |
boolean |
isCellSelected(int row,
int column) Возвращает true, если указанные индексы находятся в допустимом диапазоне строк и столбцов, и ячейка в указанном положении выбрана. |
boolean |
isColumnSelected(int column) Возвращает true, если указанный индекс находится в допустимом диапазоне столбцов, и столбец в этом индексе выбран. |
boolean |
isEditing() Возвращает true, если ячейка редактируется. |
boolean |
isRowSelected(int row) Возвращает true, если указанный индекс находится в допустимом диапазоне строк, и строка в этом индексе выбрана. |
void |
moveColumn(int column,
int targetColumn) Перемещает столбец |
protected String |
paramString() Возвращает строковое представление этой таблицы. |
Component |
prepareEditor(TableCellEditor editor,
int row,
int column) Подготавливает редактор, запрашивая у модели данных значение и состояние выбора ячейки по |
Component |
prepareRenderer(TableCellRenderer renderer,
int row,
int column) Подготавливает рендерер, запрашивая у модели данных значение и состояние выбора ячейки по |
boolean |
print() Удобный метод, который отображает диалог печати и затем печатает этот |
boolean |
print(JTable.PrintMode printMode) Удобный метод, который отображает диалог печати и затем печатает этот |
boolean |
print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat) Удобный метод, который отображает диалог печати и затем печатает этот |
boolean |
print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintRequestAttributeSet attr,
boolean interactive) Печатает эту таблицу, как указано в полном методе |
boolean |
print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintRequestAttributeSet attr,
boolean interactive,
PrintService service) Печатает этот |
protected boolean |
processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed) Вызывается для обработки привязок клавиш для |
void |
removeColumn(TableColumn aColumn) Удаляет |
void |
removeColumnSelectionInterval(int index0,
int index1) Снимает выделение столбцов с |
void |
removeEditor() Отбрасывает объект редактора и освобождает занимаемое им место для отрисовки ячеек. |
void |
removeNotify() Вызывает метод |
void |
removeRowSelectionInterval(int index0,
int index1) Снимает выделение строк с |
protected void |
resizeAndRepaint() Эквивалентно |
int |
rowAtPoint(Point point) Возвращает индекс строки, в которой |
void |
selectAll() Выделяет все строки, столбцы и ячейки в таблице. |
void |
setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel) Устанавливает для этой таблицы флаг |
void |
setAutoCreateRowSorter(boolean autoCreateRowSorter) Указывает, должен ли создаваться |
void |
setAutoResizeMode(int mode) Устанавливает режим автоматического изменения размера таблицы при изменении ее размера. |
void |
setCellEditor(TableCellEditor anEditor) Устанавливает активный редактор ячеек. |
void |
setCellSelectionEnabled(boolean cellSelectionEnabled) Устанавливает, позволяет ли эта таблица одновременно иметь выделение столбцов и строк. |
void |
setColumnModel(TableColumnModel columnModel) Устанавливает модель столбцов для этой таблицы в |
void |
setColumnSelectionAllowed(boolean columnSelectionAllowed) Устанавливает, можно ли выбирать столбцы в этой модели. |
void |
setColumnSelectionInterval(int index0,
int index1) Выделяет столбцы с |
void |
setDefaultEditor(Class<?> columnClass,
TableCellEditor editor) Устанавливает редактор ячеек по умолчанию, который используется, если редактор не был задан в |
void |
setDefaultRenderer(Class<?> columnClass,
TableCellRenderer renderer) Устанавливает рендерер ячеек по умолчанию, который используется, если рендерер не был задан в |
void |
setDragEnabled(boolean b) Включает или выключает автоматическую обработку перетаскивания. |
void |
setDropMode(DropMode dropMode) Устанавливает режим выпадающего списка для этого компонента. |
void |
setEditingColumn(int aColumn) Устанавливает переменную |
void |
setEditingRow(int aRow) Устанавливает переменную |
void |
setFillsViewportHeight(boolean fillsViewportHeight) Устанавливает, будет ли эта таблица всегда достаточно большой, чтобы заполнить высоту содержащего её окна просмотра. |
void |
setGridColor(Color gridColor) Устанавливает цвет, используемый для рисования линий сетки, в |
void |
setIntercellSpacing(Dimension intercellSpacing) Устанавливает |
void |
setModel(TableModel dataModel) Устанавливает модель данных для этой таблицы в |
void |
setPreferredScrollableViewportSize(Dimension size) Устанавливает предпочтительный размер окна просмотра для этой таблицы. |
void |
setRowHeight(int rowHeight) Устанавливает высоту всех ячеек в пикселях в |
void |
setRowHeight(int row,
int rowHeight) Устанавливает высоту для |
void |
setRowMargin(int rowMargin) Устанавливает количество пустого места между ячейками в соседних строках. |
void |
setRowSelectionAllowed(boolean rowSelectionAllowed) Устанавливает, могут ли строки в этой модели быть выбраны. |
void |
setRowSelectionInterval(int index0,
int index1) Выбирает строки с |
void |
setRowSorter(RowSorter<? extends TableModel> sorter) Устанавливает |
void |
setSelectionBackground(Color selectionBackground) Устанавливает цвет фона для выделенных ячеек. |
void |
setSelectionForeground(Color selectionForeground) Устанавливает цвет переднего плана для выделенных ячеек. |
void |
setSelectionMode(int selectionMode) Устанавливает режим выбора таблицы, позволяющий только одиночные выборы, один непрерывный интервал или несколько интервалов. |
void |
setSelectionModel(ListSelectionModel newModel) Устанавливает модель выбора строк для этой таблицы в |
void |
setShowGrid(boolean showGrid) Устанавливает, рисует ли таблица линии сетки вокруг ячеек. |
void |
setShowHorizontalLines(boolean showHorizontalLines) Устанавливает, рисует ли таблица горизонтальные линии между ячейками. |
void |
setShowVerticalLines(boolean showVerticalLines) Устанавливает, рисует ли таблица вертикальные линии между ячейками. |
void |
setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke) Устанавливает, получают ли редакторы в этом элементе JTable фокус клавиатуры, когда редактор активируется в результате перенаправления событий клавиатуры JTable для ячейки. |
void |
setTableHeader(JTableHeader tableHeader) Устанавливает |
void |
setUI(TableUI ui) Устанавливает объект L&F, который отображает этот компонент и перерисовывает. |
void |
setUpdateSelectionOnSort(boolean update) Указывает, должно ли быть обновлено выделение после сортировки. |
void |
setValueAt(Object aValue,
int row,
int column) Устанавливает значение для ячейки в модели таблицы в |
void |
sizeColumnsToFit(boolean lastColumnOnly) Устаревшее. С версии Swing 1.0.3 заменено на |
void |
sizeColumnsToFit(int resizingColumn) Устарело с версии Java 2 platform v1.4. |
void |
sorterChanged(RowSorterEvent e)
|
void |
tableChanged(TableModelEvent e) Вызывается, когда |
protected void |
unconfigureEnclosingScrollPane() Отменяет действие |
void |
updateUI() Уведомление от |
void |
valueChanged(ListSelectionEvent e) Вызывается при изменении выбора строк — перерисовывается для отображения нового выбора. |
Способы унаследованные от класса javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update Способы унаследованные от класса java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree Способы унаследованные от класса java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle Способы унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
AUTO_RESIZE_OFF
public static final int AUTO_RESIZE_OFF
Не изменять ширину столбцов автоматически; использовать горизонтальную полосу прокрутки вместо этого.
- См. также:
- Значения константных полей
AUTO_RESIZE_NEXT_COLUMN
public static final int AUTO_RESIZE_NEXT_COLUMN
При изменении размера столбца в пользовательском интерфейсе, изменять размер следующего столбца в противоположном направлении.
- См. также:
- Значения константных полей
AUTO_RESIZE_SUBSEQUENT_COLUMNS
public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
При изменении размера в пользовательском интерфейсе, изменять размер последующих столбцов для сохранения общей ширины; это поведение по умолчанию.
- См. также:
- Значения константных полей
AUTO_RESIZE_LAST_COLUMN
public static final int AUTO_RESIZE_LAST_COLUMN
При всех операциях изменения размера, применять изменения только к последнему столбцу.
- См. также:
- Значения константных полей
AUTO_RESIZE_ALL_COLUMNS
public static final int AUTO_RESIZE_ALL_COLUMNS
При всех операциях изменения размера, пропорционально изменять размер всех столбцов.
- См. также:
- Значения константных полей
dataModel
protected TableModel dataModel
Модель данных таблицы.
columnModel
protected TableColumnModel columnModel
Модель столбцов таблицы.
selectionModel
protected ListSelectionModel selectionModel
Модель выделения таблицы, используемая для отслеживания выделенных строк.
tableHeader
protected JTableHeader tableHeader
Заголовок таблицы.
rowHeight
protected int rowHeight
Высота каждой строки в пикселях.
rowMargin
protected int rowMargin
Высота отступа между ячейками в каждой строке в пикселях.
gridColor
protected Color gridColor
Цвет сетки.
showHorizontalLines
protected boolean showHorizontalLines
Таблица рисует горизонтальные линии между ячейками, если showHorizontalLines имеет значение true.
showVerticalLines
protected boolean showVerticalLines
Таблица рисует вертикальные линии между ячейками, если showVerticalLines имеет значение true.
autoResizeMode
protected int autoResizeMode
Определяет, автоматически ли таблица изменяет ширину столбцов, чтобы они занимали всю ширину таблицы, и как это делается.
autoCreateColumnsFromModel
protected boolean autoCreateColumnsFromModel
Таблица запросит у модели данных построение набора столбцов по умолчанию, если это значение true.
preferredViewportSize
protected Dimension preferredViewportSize
Используется интерфейсом viewport для определения начальной видимой области.
rowSelectionAllowed
protected boolean rowSelectionAllowed
True, если разрешено выделение строк в этой таблице.
cellSelectionEnabled
protected boolean cellSelectionEnabled
Устарело начиная с Java 2 платформы v1.3. Используйте свойство rowSelectionAllowed и свойство columnSelectionAllowed интерфейса columnModel вместо этого. Или используйте метод getCellSelectionEnabled.
editorComp
protected transient Component editorComp
Если редактирование активное, то компонент, обрабатывающий редактирование.
cellEditor
protected transient TableCellEditor cellEditor
Активный объект редактора ячейки, который перекрывает экранное пространство, занятое текущей ячейкой, и позволяет пользователю изменить её содержимое. null если таблица не находится в режиме редактирования.
editingColumn
protected transient int editingColumn
Идентификатор столбца редактируемой ячейки.
editingRow
protected transient int editingRow
Идентификатор строки редактируемой ячейки.
defaultRenderersByColumnClass
protected transient Hashtable defaultRenderersByColumnClass
Таблица объектов, отображающих содержимое ячейки, индексированная по классам, объявленным в getColumnClass в интерфейсе TableModel.
defaultEditorsByColumnClass
protected transient Hashtable defaultEditorsByColumnClass
Таблица объектов, отображающих и редактирующих содержимое ячейки, индексированная по классам, объявленным в getColumnClass в интерфейсе TableModel.
selectionForeground
protected Color selectionForeground
Цвет переднего плана выделенных ячеек.
selectionBackground
protected Color selectionBackground
Цвет заднего плана выделенных ячеек.
Конструкторы
JTable
public JTable()
Создаёт таблицу по умолчанию, инициализированную моделью данных по умолчанию, моделью столбцов по умолчанию и моделью выделения по умолчанию.
JTable
public JTable(TableModel dm)
Создаёт таблицу, инициализированную моделью данных dm, моделью столбцов по умолчанию и моделью выделения по умолчанию.
- Параметры:
-
dm- модель данных для таблицы - См. также:
-
createDefaultColumnModel(),createDefaultSelectionModel()
JTable
public JTable(TableModel dm,
TableColumnModel cm) Создаёт таблицу, инициализированную моделью данных dm, моделью столбцов cm и моделью выделения по умолчанию.
- Параметры:
-
dm- модель данных для таблицы -
cm- модель столбцов для таблицы - См. также:
createDefaultSelectionModel()
JTable
public JTable(TableModel dm,
TableColumnModel cm,
ListSelectionModel sm) Создаёт таблицу, инициализированную моделью данных dm, моделью столбцов cm и моделью выделения sm. Если любой из параметров null, этот метод инициализирует таблицу соответствующей моделью по умолчанию. Флаг autoCreateColumnsFromModel устанавливается в false, если cm не null, в противном случае он устанавливается в true, и модель столбцов заполняется подходящими TableColumns для столбцов в dm.
- Параметры:
-
dm- модель данных для таблицы -
cm- модель столбцов для таблицы -
sm- модель выделения строк для таблицы - См. также:
-
createDefaultDataModel(),createDefaultColumnModel(),createDefaultSelectionModel()
JTable
public JTable(int numRows,
int numColumns) Создаёт таблицу с numRows и numColumns пустых ячеек, используя DefaultTableModel. Столбцы будут иметь имена в формате "A", "B", "C" и т. д.
- Параметры:
-
numRows- количество строк в таблице -
numColumns- количество столбцов в таблице - См. также:
DefaultTableModel
JTable
public JTable(Vector rowData,
Vector columnNames) Создаёт таблицу для отображения значений из Vector Vectors, rowData, с именами столбцов, columnNames. Vectors содержащиеся в rowData должны содержать значения для данной строки. Другими словами, значение ячейки в строке 1, столбце 5 можно получить с помощью следующего кода:
((Vector)rowData.elementAt(1)).elementAt(5);
- Параметры:
-
rowData- данные для новой таблицы -
columnNames- имена каждого столбца
JTable
public JTable(Object[][] rowData,
Object[] columnNames) Создаёт таблицу для отображения значений из двумерного массива, rowData, с именами столбцов, columnNames. rowData - массив строк, поэтому значение ячейки в строке 1, столбце 5 можно получить с помощью следующего кода:
rowData[1][5];
Все строки должны иметь одинаковую длину с columnNames.
- Параметры:
-
rowData- данные для новой таблицы -
columnNames- имена каждого столбца
Методы
addNotify
public void addNotify()
Вызывает метод configureEnclosingScrollPane.
- Переопределяет:
-
addNotifyв классеJComponent - См. также:
configureEnclosingScrollPane()
configureEnclosingScrollPane
protected void configureEnclosingScrollPane()
Если эта таблица является частью содержащей её панели прокрутки (как правило), настраивает её, среди прочего, устанавливая её модель выделения в качестве модели выделения панели прокрутки. Когда таблица добавляется к панели прокрутки стандартным способом, используя new JScrollPane(myTable), вызывается addNotify, в метод JTable (когда таблица добавляется к viewport). JTable's метод addNotify в свою очередь вызывает этот метод, который является защищенным, чтобы это стандартная процедура установки могла быть переопределена подклассом.
- См. также:
addNotify()
removeNotify
public void removeNotify()
Вызывает метод unconfigureEnclosingScrollPane.
- Overrides:
-
removeNotifyв классеJComponent - См. также:
unconfigureEnclosingScrollPane()
unconfigureEnclosingScrollPane
protected void unconfigureEnclosingScrollPane()
Отменяет действие configureEnclosingScrollPane путём замены columnHeaderView содержащего его области прокрутки на null. Метод JTable класса removeNotify вызывает этот метод, который защищён, чтобы эта процедура отключения по умолчанию могла быть переопределена подклассом.
- Since:
- 1.3
- См. также:
-
removeNotify(),configureEnclosingScrollPane()
createScrollPaneForTable
@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
Устарело. С версии Swing 1.0.2 заменено на new JScrollPane(aTable).
Эквивалентно new JScrollPane(aTable).
setTableHeader
public void setTableHeader(JTableHeader tableHeader)
Устанавливает tableHeader работающую с этой JTable на newHeader. Разрешается иметь null tableHeader.
- Parameters:
-
tableHeader- новый заголовок таблицы - См. также:
getTableHeader()
getTableHeader
public JTableHeader getTableHeader()
Возвращает tableHeader используемый этой JTable.
- Returns:
- используемый этой таблицей
tableHeader - См. также:
setTableHeader(javax.swing.table.JTableHeader)
setRowHeight
public void setRowHeight(int rowHeight)
Устанавливает высоту всех ячеек в пикселях на rowHeight, перепроверяет и перерисовывает. Высота ячеек будет равна высоте строки минус отступ строки.
- Parameters:
-
rowHeight- новая высота строки - Throws:
-
IllegalArgumentException- еслиrowHeightменьше 1 - См. также:
getRowHeight()
getRowHeight
public int getRowHeight()
Возвращает высоту строки таблицы в пикселях.
- Returns:
- высота строки таблицы в пикселях
- См. также:
setRowHeight(int)
setRowHeight
public void setRowHeight(int row,
int rowHeight) Устанавливает высоту для row на rowHeight, перепроверяет и перерисовывает. Высота ячеек в этой строке будет равна высоте строки минус отступ строки.
- Parameters:
-
row- строка, высота которой изменяется -
rowHeight- новая высота строки в пикселях - Throws:
-
IllegalArgumentException- еслиrowHeightменьше 1 - Since:
- 1.3
getRowHeight
public int getRowHeight(int row)
Возвращает высоту ячеек в row в пикселях.
- Parameters:
-
row- строка, высота которой возвращается - Returns:
- высота ячеек в строке в пикселях
- Since:
- 1.3
setRowMargin
public void setRowMargin(int rowMargin)
Устанавливает величину отступа между ячейками в смежных строках.
- Parameters:
-
rowMargin- количество пикселей между ячейками в строке - См. также:
getRowMargin()
getRowMargin
public int getRowMargin()
Получает величину отступа между ячейками в пикселях. Эквивалентно: getIntercellSpacing().height.
- Returns:
- количество пикселей между ячейками в строке
- См. также:
setRowMargin(int)
setIntercellSpacing
public void setIntercellSpacing(Dimension intercellSpacing)
Устанавливает rowMargin и columnMargin — высоту и ширину пространства между ячейками — на intercellSpacing.
- Parameters:
-
intercellSpacing-Dimensionопределяющий новую ширину и высоту между ячейками - См. также:
getIntercellSpacing()
getIntercellSpacing
public Dimension getIntercellSpacing()
Возвращает горизонтальное и вертикальное расстояние между ячейками. Значение отступа зависит от темы.
- Returns:
- горизонтальный и вертикальный отступ между ячейками
- См. также:
setIntercellSpacing(java.awt.Dimension)
setGridColor
public void setGridColor(Color gridColor)
Устанавливает цвет, используемый для рисования линий сетки, на gridColor и перерисовывает. Цвет по умолчанию зависит от темы.
- Parameters:
-
gridColor- новый цвет линий сетки - Throws:
-
IllegalArgumentException- еслиgridColorравенnull - См. также:
getGridColor()
getGridColor
public Color getGridColor()
Возвращает цвет, используемый для рисования линий сетки. Цвет по умолчанию зависит от темы.
- Returns:
- цвет, используемый для рисования линий сетки
- См. также:
setGridColor(java.awt.Color)
setShowGrid
public void setShowGrid(boolean showGrid)
Устанавливает, отображаются ли линии сетки вокруг ячеек таблицы. Если showGrid истинно, отображаются; если ложно, не отображаются. Нет метода getShowGrid, так как это состояние хранится в двух переменных — showHorizontalLines и showVerticalLines, каждая из которых может быть запрошена независимо.
- Parameters:
-
showGrid- истинно, если представление таблицы должно рисовать линии сетки - См. также:
-
setShowVerticalLines(boolean),setShowHorizontalLines(boolean)
setShowHorizontalLines
public void setShowHorizontalLines(boolean showHorizontalLines)
Устанавливает, отображаются ли горизонтальные линии между ячейками таблицы. Если showHorizontalLines истинно, отображаются; если ложно, не отображаются.
- Parameters:
-
showHorizontalLines- истинно, если представление таблицы должно рисовать горизонтальные линии - См. также:
-
getShowHorizontalLines(),setShowGrid(boolean),setShowVerticalLines(boolean)
setShowVerticalLines
public void setShowVerticalLines(boolean showVerticalLines)
Устанавливает, отображаются ли вертикальные линии между ячейками таблицы. Если showVerticalLines истинно, отображаются; если ложно, не отображаются.
- Parameters:
-
showVerticalLines- истинно, если представление таблицы должно рисовать вертикальные линии - См. также:
-
getShowVerticalLines(),setShowGrid(boolean),setShowHorizontalLines(boolean)
getShowHorizontalLines
public boolean getShowHorizontalLines()
Возвращает истинно, если таблица рисует горизонтальные линии между ячейками, ложно, если не рисует. Значение по умолчанию зависит от темы.
- Returns:
- истинно, если таблица рисует горизонтальные линии между ячейками, ложно, если не рисует
- См. также:
setShowHorizontalLines(boolean)
getShowVerticalLines
public boolean getShowVerticalLines()
Возвращает истинно, если таблица рисует вертикальные линии между ячейками, ложно, если не рисует. Значение по умолчанию зависит от темы.
- Returns:
- истинно, если таблица рисует вертикальные линии между ячейками, ложно, если не рисует
- См. также:
setShowVerticalLines(boolean)
setAutoResizeMode
public void setAutoResizeMode(int mode)
Устанавливает режим автоматического изменения размера таблицы при изменении размера таблицы. Подробную информацию о работе различных режимов изменения размера см. в doLayout().
- Parameters:
-
mode- одно из 5 допустимых значений: AUTO_RESIZE_OFF, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_SUBSEQUENT_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_ALL_COLUMNS - См. также:
-
getAutoResizeMode(),doLayout()
getAutoResizeMode
public int getAutoResizeMode()
Возвращает режим автоматического изменения размера таблицы. Режим по умолчанию — AUTO_RESIZE_SUBSEQUENT_COLUMNS.
- Returns:
- режим автоматического изменения размера таблицы
- См. также:
-
setAutoResizeMode(int),doLayout()
setAutoCreateColumnsFromModel
public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
Устанавливает флаг автоматического создания столбцов этой таблицы. Этот метод вызывает createDefaultColumnsFromModel если autoCreateColumnsFromModel изменилось с false на true.
- Parameters:
-
autoCreateColumnsFromModel- true, если таблица должна автоматически создавать столбцы - См. также:
-
getAutoCreateColumnsFromModel(),createDefaultColumnsFromModel()
getAutoCreateColumnsFromModel
public boolean getAutoCreateColumnsFromModel()
Определяет, будет ли таблица создавать столбцы по умолчанию из модели. Если значение true, setModel очистит все существующие столбцы и создаст новые столбцы на основе информации из новой модели. Также, если событие в уведомлении tableChanged указывает, что вся таблица изменилась, то столбцы будут перестроены. Значение по умолчанию — true.
- Returns:
- автоCreateColumnsFromModel таблицы
- См. также:
-
setAutoCreateColumnsFromModel(boolean),createDefaultColumnsFromModel()
createDefaultColumnsFromModel
public void createDefaultColumnsFromModel()
Создаёт столбцы по умолчанию для таблицы из модели данных, используя метод getColumnCount определённый в интерфейсе TableModel.
Очищает все существующие столбцы перед созданием новых столбцов на основе информации из модели.
- См. также:
getAutoCreateColumnsFromModel()
setDefaultRenderer
public void setDefaultRenderer(Class<?> columnClass,
TableCellRenderer renderer) Устанавливает по умолчанию рендерер ячеек, который будет использоваться, если рендерер не был установлен в TableColumn. Если renderer равен null, удаляет рендерер по умолчанию для этого класса столбца.
- Parameters:
-
columnClass- установить рендерер ячейки по умолчанию для этого класса столбца -
renderer- рендерер ячейки по умолчанию для этого класса столбца - See Also:
-
getDefaultRenderer(java.lang.Class<?>),setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor)
getDefaultRenderer
public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
Возвращает рендерер ячейки, который будет использоваться, если рендерер не был установлен в TableColumn. При отрисовке ячеек рендерер извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого класса нет записи, метод возвращает запись для наиболее конкретного суперкласса. JTable устанавливает записи для Object, Number, и Boolean, которые можно изменять или заменять.
- Parameters:
-
columnClass- вернуть рендерер ячейки по умолчанию для этого класса столбца - Returns:
- рендерер для этого класса столбца
- See Also:
-
setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer),getColumnClass(int)
setDefaultEditor
public void setDefaultEditor(Class<?> columnClass,
TableCellEditor editor) Устанавливает редактор ячеек по умолчанию, который будет использоваться, если редактор не был установлен в TableColumn. Если в таблице или конкретном столбце не требуется редактирование, используйте метод isCellEditable в интерфейсе TableModel, чтобы убедиться, что этот метод не запустит редактор в этих столбцах. Если editor равен null, удаляет редактор по умолчанию для этого класса столбца.
- Parameters:
-
columnClass- установить редактор ячейки по умолчанию для этого класса столбца -
editor- редактор ячейки по умолчанию для этого класса столбца - See Also:
-
TableModel.isCellEditable(int, int),getDefaultEditor(java.lang.Class<?>),setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)
getDefaultEditor
public TableCellEditor getDefaultEditor(Class<?> columnClass)
Возвращает редактор, который будет использоваться, если редактор не был установлен в TableColumn. При редактировании ячеек редактор извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого класса нет записи, метод возвращает запись для наиболее конкретного суперкласса. JTable устанавливает записи для Object, Number, и Boolean, которые можно изменять или заменять.
- Parameters:
-
columnClass- вернуть редактор ячейки по умолчанию для этого класса столбца - Returns:
- редактор ячейки по умолчанию для этого класса столбца
- See Also:
-
setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor),getColumnClass(int)
setDragEnabled
public void setDragEnabled(boolean b)
Включает или отключает автоматическую обработку перетаскивания. Чтобы включить автоматическую обработку перетаскивания, это свойство должно быть установлено в true, и TransferHandler таблицы должно быть non-null. Значение свойства dragEnabled по умолчанию равно false.
Задача обработки этого свойства и распознавания жеста перетаскивания пользователя лежит на реализации внешнего вида и, в частности, на TableUI таблицы. При включенной автоматической обработке перетаскивания большинство внешних видов (включая те, что являются подклассами BasicLookAndFeel) начинают операцию перетаскивания и опускания, когда пользователь нажимает кнопку мыши над элементом (в режиме однократного выбора) или выделением (в других режимах выбора) и затем перемещает мышь на несколько пикселей. Установка этого свойства в значение true может, таким образом, оказывать тонкое влияние на поведение выделений.
Если используется внешний вид, игнорирующий это свойство, вы все равно можете начать операцию перетаскивания и опускания, вызвав exportAsDrag на TransferHandler таблицы.
- Parameters:
-
b- включить или отключить автоматическую обработку перетаскивания - Throws:
-
HeadlessException- еслиbравноtrueиGraphicsEnvironment.isHeadless()возвращаетtrue - Since:
- 1.4
- See Also:
-
GraphicsEnvironment.isHeadless(),getDragEnabled(),JComponent.setTransferHandler(javax.swing.TransferHandler),TransferHandler
getDragEnabled
public boolean getDragEnabled()
Возвращает значение, указывающее, включена ли автоматическая обработка перетаскивания.
- Returns:
- значение свойства
dragEnabled - Since:
- 1.4
- See Also:
setDragEnabled(boolean)
setDropMode
public final void setDropMode(DropMode dropMode)
Устанавливает режим опускания для этого компонента. Для обратной совместимости значение по умолчанию для этого свойства равно DropMode.USE_SELECTION. Однако рекомендуется использовать один из других режимов для улучшения пользовательского опыта. DropMode.ON, например, предлагает аналогичное поведение, отображая элементы как выделенные, но не влияет на фактическое выделение в таблице.
JTable поддерживает следующие режимы опускания:
DropMode.USE_SELECTIONDropMode.ONDropMode.INSERTDropMode.INSERT_ROWSDropMode.INSERT_COLSDropMode.ON_OR_INSERTDropMode.ON_OR_INSERT_ROWSDropMode.ON_OR_INSERT_COLS
Режим опускания имеет смысл только в том случае, если у этого компонента есть TransferHandler , который принимает опускание.
- Parameters:
-
dropMode- используемый режим опускания - Throws:
-
IllegalArgumentException- если режим опускания не поддерживается илиnull - Since:
- 1.6
- See Also:
-
getDropMode(),getDropLocation(),JComponent.setTransferHandler(javax.swing.TransferHandler),TransferHandler
getDropMode
public final DropMode getDropMode()
Возвращает режим опускания для этого компонента.
- Returns:
- режим опускания для этого компонента
- Since:
- 1.6
- See Also:
setDropMode(javax.swing.DropMode)
getDropLocation
public final JTable.DropLocation getDropLocation()
Возвращает расположение, которое этот компонент должен визуально указывать как расположение опускания во время операции перетаскивания и опускания над компонентом, или null, если расположение в данный момент не должно отображаться.
Этот метод не предназначен для запроса расположения опускания от TransferHandler, так как расположение опускания устанавливается только после того, как TransferHandler завершил canImport и позволил отобразить расположение.
При изменении этого свойства компонент генерирует событие изменения свойства с именем "dropLocation".
- Returns:
- расположение опускания
- Since:
- 1.6
- See Also:
-
setDropMode(javax.swing.DropMode),TransferHandler.canImport(TransferHandler.TransferSupport)
setAutoCreateRowSorter
public void setAutoCreateRowSorter(boolean autoCreateRowSorter)
Указывает, должен ли быть создан RowSorter для таблицы всякий раз, когда изменяется ее модель.
При вызове setAutoCreateRowSorter(true), TableRowSorter сразу создается и устанавливается для таблицы. Пока свойство autoCreateRowSorter остается true, каждый раз при изменении модели создается новый TableRowSorter и устанавливается в качестве сортировщика строк таблицы. Значение свойства autoCreateRowSorter по умолчанию равно false.
- Parameters:
-
autoCreateRowSorter- следует ли автоматически создаватьRowSorter - Since:
- 1.6
- See Also:
TableRowSorter
getAutoCreateRowSorter
public boolean getAutoCreateRowSorter()
Возвращает true, если при изменении модели должен создаваться и устанавливаться новый RowSorter в качестве сортировщика таблицы; в противном случае возвращает false.
- Returns:
- true, если должен создаваться
RowSorterпри изменении модели - Since:
- 1.6
setUpdateSelectionOnSort
public void setUpdateSelectionOnSort(boolean update)
Указывает, должно ли обновляться выделение после сортировки. Если true, при сортировке выделение сбрасывается так, что те же строки, с точки зрения модели, остаются выделенными. Значение по умолчанию равно true.
- Parameters:
-
update- обновлять ли выделение при сортировке - Since:
- 1.6
getUpdateSelectionOnSort
public boolean getUpdateSelectionOnSort()
Возвращает true, если выделение должно обновляться после сортировки.
- Returns:
- обновлять ли выделение при сортировке
- Since:
- 1.6
setRowSorter
public void setRowSorter(RowSorter<? extends TableModel> sorter)
Устанавливает RowSorter. RowSorter используется для предоставления сортировки и фильтрации JTable.
Этот метод очищает выделение и сбрасывает любые переменные высоты строк.
Этот метод генерирует событие изменения свойства, когда это необходимо, с именем "rowSorter". Для обратной совместимости этот метод генерирует дополнительное событие со свойством "sorter".
Если базовая модель RowSorter отличается от модели этого JTable, возникнет неопределенное поведение.
- Параметры:
-
sorter—RowSorter;nullотключает сортировку - С момента:
- 1.6
- См. также:
TableRowSorter
getRowSorter
public RowSorter<? extends TableModel> getRowSorter()
Возвращает объект, ответственный за сортировку.
- Возвращает:
- объект, ответственный за сортировку
- С момента:
- 1.6
setSelectionMode
public void setSelectionMode(int selectionMode)
Устанавливает режим выбора таблицы, разрешая только одиночные выделения, один непрерывный интервал или несколько интервалов.
Примечание: JTable предоставляет все методы для обработки выбора столбцов и строк. При установке состояний, таких как setSelectionMode, он не только обновляет режим для модели выбора строк, но также устанавливает аналогичные значения в модели выбора columnModel. Если вы хотите, чтобы модели выбора строк и столбцов работали в разных режимах, установите их оба напрямую.
Как модель выбора строк, так и модель выбора столбцов для JTable по умолчанию используют DefaultListSelectionModel, чтобы JTable работало так же, как и JList. Подробности о режимах см. в методе setSelectionMode в JList.
- См. также:
JList.setSelectionMode(int)
setRowSelectionAllowed
public void setRowSelectionAllowed(boolean rowSelectionAllowed)
Устанавливает, могут ли строки в этой модели быть выбраны.
- Параметры:
-
rowSelectionAllowed— true, если эта модель будет разрешать выбор строк - См. также:
getRowSelectionAllowed()
getRowSelectionAllowed
public boolean getRowSelectionAllowed()
Возвращает true, если строки можно выбрать.
- Возвращает:
- true, если строки можно выбрать, в противном случае false
- См. также:
setRowSelectionAllowed(boolean)
setColumnSelectionAllowed
public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
Устанавливает, могут ли столбцы в этой модели быть выбраны.
- Параметры:
-
columnSelectionAllowed— true, если эта модель будет разрешать выбор столбцов - См. также:
getColumnSelectionAllowed()
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()
Возвращает true, если столбцы можно выбрать.
- Возвращает:
- true, если столбцы можно выбрать, в противном случае false
- См. также:
setColumnSelectionAllowed(boolean)
setCellSelectionEnabled
public void setCellSelectionEnabled(boolean cellSelectionEnabled)
Устанавливает, позволяет ли эта таблица одновременно иметь выбор столбцов и выбор строк. При установке таблица рассматривает пересечение моделей выбора строк и столбцов как выбранные ячейки. Переопределите isCellSelected, чтобы изменить это поведение по умолчанию. Этот метод эквивалентен установке свойств rowSelectionAllowed и columnSelectionAllowed модели columnModel в заданное значение.
- Параметры:
-
cellSelectionEnabled— true, если разрешен одновременный выбор строк и столбцов - См. также:
-
getCellSelectionEnabled(),isCellSelected(int, int)
getCellSelectionEnabled
public boolean getCellSelectionEnabled()
Возвращает true, если обе модели выбора строк и столбцов включены. Эквивалентно getRowSelectionAllowed() &&
getColumnSelectionAllowed().
- Возвращает:
- true, если обе модели выбора строк и столбцов включены
- См. также:
setCellSelectionEnabled(boolean)
selectAll
public void selectAll()
Выбирает все строки, столбцы и ячейки в таблице.
clearSelection
public void clearSelection()
Снимает выделение со всех выделенных столбцов и строк.
setRowSelectionInterval
public void setRowSelectionInterval(int index0,
int index1) Выбирает строки от index0 до index1, включительно.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getRowCount()-1]
setColumnSelectionInterval
public void setColumnSelectionInterval(int index0,
int index1) Выбирает столбцы от index0 до index1, включительно.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
addRowSelectionInterval
public void addRowSelectionInterval(int index0,
int index1) Добавляет строки от index0 до index1, включительно, к текущему выделению.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getRowCount()-1]
addColumnSelectionInterval
public void addColumnSelectionInterval(int index0,
int index1) Добавляет столбцы от index0 до index1, включительно, к текущему выделению.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
removeRowSelectionInterval
public void removeRowSelectionInterval(int index0,
int index1) Снимает выделение со строк от index0 до index1, включительно.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getRowCount()-1]
removeColumnSelectionInterval
public void removeColumnSelectionInterval(int index0,
int index1) Снимает выделение со столбцов от index0 до index1, включительно.
- Параметры:
-
index0— один конец интервала -
index1— другой конец интервала - Выбрасывает:
-
IllegalArgumentException— еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
getSelectedRow
public int getSelectedRow()
Возвращает индекс первой выбранной строки, -1, если ни одна строка не выбрана.
- Возвращает:
- индекс первой выбранной строки
getSelectedColumn
public int getSelectedColumn()
Возвращает индекс первого выбранного столбца, -1, если ни один столбец не выбран.
- Возвращает:
- индекс первого выбранного столбца
getSelectedRows
public int[] getSelectedRows()
Возвращает индексы всех выбранных строк.
- Возвращает:
- массив целых чисел, содержащий индексы всех выбранных строк, или пустой массив, если ни одна строка не выбрана
- См. также:
getSelectedRow()
getSelectedColumns
public int[] getSelectedColumns()
Возвращает индексы всех выбранных столбцов.
- Возвращает:
- массив целых чисел, содержащий индексы всех выбранных столбцов, или пустой массив, если ни один столбец не выбран
- См. также:
getSelectedColumn()
getSelectedRowCount
public int getSelectedRowCount()
Возвращает количество выбранных строк.
- Возвращает:
- количество выбранных строк, 0, если нет выбранных строк
getSelectedColumnCount
public int getSelectedColumnCount()
Возвращает количество выбранных столбцов.
- Возвращает:
- количество выбранных столбцов, 0, если нет выбранных столбцов
isRowSelected
public boolean isRowSelected(int row)
Возвращает true, если указанный индекс находится в допустимом диапазоне строк и строка в этом индексе выбрана.
- Возвращает:
- true, если
row— допустимый индекс и строка в этом индексе выбрана (где 0 — первая строка)
isColumnSelected
public boolean isColumnSelected(int column)
Возвращает true, если указанный индекс находится в допустимом диапазоне столбцов и столбец в этом индексе выбран.
- Параметры:
-
column— столбец в модели столбцов - Возвращает:
- true, если
column— допустимый индекс и столбец в этом индексе выбран (где 0 — первый столбец)
isCellSelected
public boolean isCellSelected(int row,
int column) Возвращает true, если указанные индексы находятся в допустимом диапазоне строк и столбцов и ячейка в указанной позиции выбрана.
- Параметры:
-
row— запрашиваемая строка -
column— запрашиваемый столбец - Возвращает:
- true, если
rowиcolumn— допустимые индексы, и ячейка с индексом(row, column)выбрана, где первая строка и первый столбец имеют индекс 0
changeSelection
public void changeSelection(int rowIndex,
int columnIndex,
boolean toggle,
boolean extend) Обновляет модели выделения таблицы в зависимости от состояния двух флагов: toggle и extend. Большинство изменений в выделении, являющиеся результатом событий клавиатуры или мыши, полученных UI, направляются через этот метод, чтобы поведение могло быть переопределено подклассом. Некоторые UI могут нуждаться в большей функциональности, чем предоставляет этот метод, например, при манипулировании ведущим элементом для несмежного выделения, и могут не вызывать этот метод для некоторых изменений выделения.
Эта реализация использует следующие соглашения:
-
toggle: false,extend: false. Очистить предыдущее выделение и убедиться, что новая ячейка выбрана. -
toggle: false,extend: true. Расширить предыдущее выделение от якоря до указанной ячейки, очистив все остальные выделения. -
toggle: true,extend: false. Если указанная ячейка выбрана, снять с неё выделение. Если она не выбрана, выделить её. -
toggle: true,extend: true. Применить состояние выделения якоря ко всем ячейкам между ним и указанной ячейкой.
- Параметры:
-
rowIndex- влияет на выделение вrow -
columnIndex- влияет на выделение вcolumn -
toggle- см. описание выше -
extend- если true, расширить текущее выделение - С версии:
- 1.3
getSelectionForeground
public Color getSelectionForeground()
Возвращает цвет переднего плана для выделенных ячеек.
- Возвращает:
- объект
Colorдля свойства переднего плана - См. также:
-
setSelectionForeground(java.awt.Color),setSelectionBackground(java.awt.Color)
setSelectionForeground
public void setSelectionForeground(Color selectionForeground)
Задает цвет переднего плана для выделенных ячеек. Рендереры ячеек могут использовать этот цвет для отображения текста и графики для выделенных ячеек.
Значение по умолчанию этого свойства определяется реализацией внешнего вида и поведения.
Это связанное свойство JavaBeans.
- Параметры:
-
selectionForeground-Colorдля использования на переднем плане для выделенных элементов списка - См. также:
-
getSelectionForeground(),setSelectionBackground(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.Font)
getSelectionBackground
public Color getSelectionBackground()
Возвращает цвет фона для выделенных ячеек.
- Возвращает:
Colorиспользуемый для фона выделенных элементов списка- См. также:
-
setSelectionBackground(java.awt.Color),setSelectionForeground(java.awt.Color)
setSelectionBackground
public void setSelectionBackground(Color selectionBackground)
Задает цвет фона для выделенных ячеек. Рендереры ячеек могут использовать этот цвет для заливки выделенных ячеек.
Значение по умолчанию этого свойства определяется реализацией внешнего вида и поведения.
Это связанное свойство JavaBeans.
- Параметры:
-
selectionBackground-Colorдля использования в качестве фона выделенных ячеек - См. также:
-
getSelectionBackground(),setSelectionForeground(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.Font)
getColumn
public TableColumn getColumn(Object identifier)
Возвращает объект TableColumn для столбца в таблице, идентификатор которого равен identifier, при сравнении с использованием equals.
- Параметры:
-
identifier- объект идентификатора - Возвращает:
- объект
TableColumn, соответствующий идентификатору - Исключения:
-
IllegalArgumentException- еслиidentifierявляетсяnullили ни одинTableColumnне имеет этого идентификатора
convertColumnIndexToModel
public int convertColumnIndexToModel(int viewColumnIndex)
Сопоставляет индекс столбца в представлении в viewColumnIndex с индексом столбца в модели таблицы. Возвращает индекс соответствующего столбца в модели. Если viewColumnIndex меньше нуля, возвращает viewColumnIndex.
- Параметры:
-
viewColumnIndex- индекс столбца в представлении - Возвращает:
- индекс соответствующего столбца в модели
- См. также:
convertColumnIndexToView(int)
convertColumnIndexToView
public int convertColumnIndexToView(int modelColumnIndex)
Сопоставляет индекс столбца в модели таблицы в modelColumnIndex с индексом столбца в представлении. Возвращает индекс соответствующего столбца в представлении; возвращает -1, если этот столбец не отображается. Если modelColumnIndex меньше нуля, возвращает modelColumnIndex.
- Параметры:
-
modelColumnIndex- индекс столбца в модели - Возвращает:
- индекс соответствующего столбца в представлении
- См. также:
convertColumnIndexToModel(int)
convertRowIndexToView
public int convertRowIndexToView(int modelRowIndex)
Сопоставляет индекс строки в терминах TableModel с представлением. Если содержимое модели не отсортировано, индексы модели и представления совпадают.
- Параметры:
-
modelRowIndex- индекс строки в терминах модели - Возвращает:
- индекс соответствующей строки в представлении или -1, если строка не видна
- Исключения:
-
IndexOutOfBoundsException- если включена сортировка и передан индекс вне количества строкTableModel - С версии:
- 1.6
- См. также:
TableRowSorter
convertRowIndexToModel
public int convertRowIndexToModel(int viewRowIndex)
Сопоставляет индекс строки в терминах представления с базовым TableModel. Если содержимое модели не отсортировано, индексы модели и представления совпадают.
- Параметры:
-
viewRowIndex- индекс строки в представлении - Возвращает:
- индекс соответствующей строки в модели
- Исключения:
-
IndexOutOfBoundsException- если включена сортировка и передан индекс вне диапазонаJTable, определяемого методомgetRowCount - С версии:
- 1.6
- См. также:
-
TableRowSorter,getRowCount()
getRowCount
public int getRowCount()
Возвращает количество строк, которые могут быть показаны в JTable, при неограниченном пространстве. Если указан RowSorter с фильтром, количество возвращаемых строк может отличаться от количества базового TableModel.
- Возвращает:
- количество строк, показанных в
JTable - См. также:
getColumnCount()
getColumnCount
public int getColumnCount()
Возвращает количество столбцов в модели столбцов. Обратите внимание, что это может отличаться от количества столбцов в модели таблицы.
- Возвращает:
- количество столбцов в таблице
- См. также:
-
getRowCount(),removeColumn(javax.swing.table.TableColumn)
getColumnName
public String getColumnName(int column)
Возвращает имя столбца, отображаемого в представлении в позиции столбца column.
- Параметры:
-
column- столбец в представлении, который запрашивается - Возвращает:
- имя столбца в позиции
columnв представлении, где первый столбец имеет номер 0
getColumnClass
public Class<?> getColumnClass(int column)
Возвращает тип столбца, отображаемого в представлении в позиции столбца column.
- Параметры:
-
column- столбец в представлении, который запрашивается - Возвращает:
- тип столбца в позиции
columnв представлении, где первый столбец имеет номер 0
getValueAt
public Object getValueAt(int row,
int column) Возвращает значение ячейки в row и column.
Примечание: Столбец указывается в порядке отображения представления таблицы, а не в порядке столбцов TableModel. Это важное различие, поскольку по мере того, как пользователь переставляет столбцы в таблице, столбец с заданным индексом в представлении будет меняться. В то же время действия пользователя никогда не влияют на порядок столбцов модели.
- Параметры:
-
row- строка, значение которой нужно запросить -
column- столбец, значение которого нужно запросить - Возвращает:
- Объект в указанной ячейке
setValueAt
public void setValueAt(Object aValue,
int row,
int column) Устанавливает значение для ячейки в модели таблицы в row и column.
Примечание: Столбец указывается в порядке отображения представления таблицы, а не в порядке столбцов TableModel. Это важное различие, поскольку по мере того, как пользователь переставляет столбцы в таблице, столбец с заданным индексом в представлении будет меняться. В то же время действия пользователя никогда не влияют на порядок столбцов модели. aValue - это новое значение.
- Параметры:
-
aValue- новое значение -
row- строка изменяемой ячейки -
column- столбец изменяемой ячейки - См. также:
getValueAt(int, int)
isCellEditable
public boolean isCellEditable(int row,
int column) Возвращает true, если ячейка в строке row и столбце column редактируема. В противном случае вызов setValueAt для ячейки не окажет никакого эффекта.
Примечание: столбец указан в порядке отображения в таблице, а не в порядке столбцов TableModel. Это важное различие, поскольку при переупорядочении столбцов пользователем столбец с заданным индексом в представлении изменится. При этом действия пользователя никогда не влияют на порядок столбцов в модели.
- Параметры:
-
row- строка, значение которой требуется запросить -
column- столбец, значение которого требуется запросить - Возвращает:
- true, если ячейка редактируема
- См. также:
setValueAt(java.lang.Object, int, int)
addColumn
public void addColumn(TableColumn aColumn)
Добавляет aColumn в конец массива столбцов, содержащихся в модели столбцов этого JTable. Если имя столбца aColumn равно null, устанавливает имя столбца aColumn в имя, возвращаемое getModel().getColumnName().
Для добавления столбца в эту JTable, отображающего modelColumn-й столбец данных в модели с заданным width, cellRenderer и cellEditor, можно использовать:
addColumn(new TableColumn(modelColumn, width, cellRenderer, cellEditor));[Любой из конструкторов
TableColumn может быть использован вместо этого.] Номер столбца модели хранится внутри TableColumn и используется во время отрисовки и редактирования для определения соответствующих значений данных в модели. Номер столбца модели не меняется при переупорядочении столбцов в представлении.- Параметры:
-
aColumn- добавляемыйTableColumn - См. также:
removeColumn(javax.swing.table.TableColumn)
removeColumn
public void removeColumn(TableColumn aColumn)
Удаляет aColumn из массива столбцов этого JTable. Примечание: этот метод не удаляет столбец данных из модели; он просто удаляет TableColumn который был ответственным за его отображение.
- Параметры:
-
aColumn- удаляемыйTableColumn - См. также:
addColumn(javax.swing.table.TableColumn)
moveColumn
public void moveColumn(int column,
int targetColumn) Перемещает столбец column в позицию, в которой в представлении сейчас находится столбец targetColumn. Старый столбец в позиции targetColumn сдвигается влево или вправо, чтобы освободить место.
- Параметры:
-
column- индекс перемещаемого столбца -
targetColumn- новый индекс столбца
columnAtPoint
public int columnAtPoint(Point point)
Возвращает индекс столбца, в котором point расположен, или -1, если результат не находится в диапазоне [0, getColumnCount()-1].
- Параметры:
-
point- интересующее местоположение - Возвращает:
- индекс столбца, в котором
pointрасположен, или -1, если результат не находится в диапазоне [0,getColumnCount()-1] - См. также:
rowAtPoint(java.awt.Point)
rowAtPoint
public int rowAtPoint(Point point)
Возвращает индекс строки, в которой point расположен, или -1, если результат не находится в диапазоне [0, getRowCount()-1].
- Параметры:
-
point- интересующее местоположение - Возвращает:
- индекс строки, в которой
pointрасположен, или -1, если результат не находится в диапазоне [0,getRowCount()-1] - См. также:
columnAtPoint(java.awt.Point)
getCellRect
public Rectangle getCellRect(int row,
int column,
boolean includeSpacing) Возвращает прямоугольник для ячейки, расположенной на пересечении row и column. Если includeSpacing равно true, возвращаемое значение имеет полную высоту и ширину указанной строки и столбца. Если оно равно false, возвращаемый прямоугольник смещен на отступ между ячейками, чтобы вернуть истинные границы компонента отрисовки или редактирования, как он будет задан во время отрисовки.
Если индекс столбца корректен, но индекс строки меньше нуля, метод возвращает прямоугольник с соответствующими значениями y и height, а значения x и width установлены в ноль. В общем случае, когда индексы строки или столбца указывают на ячейку за пределами соответствующего диапазона, метод возвращает прямоугольник, изображающий ближайший край ближайшей ячейки, которая находится в пределах диапазона таблицы. Когда оба индекса строки и столбца находятся вне диапазона, возвращаемый прямоугольник охватывает ближайшую точку ближайшей ячейки.
Во всех случаях вычисления, использующие этот метод для вычисления результатов вдоль одной оси, не завершатся неудачей из-за аномалий в вычислениях вдоль другой оси. Когда ячейка не является допустимой, параметр includeSpacing игнорируется.
- Параметры:
-
row- индекс строки, где расположена требуемая ячейка -
column- индекс столбца, где расположена требуемая ячейка в представлении; это не обязательно тот же индекс столбца в модели данных таблицы; для преобразования индекса столбца модели данных в индекс столбца представления может использоваться методconvertColumnIndexToView(int) -
includeSpacing- если false, вернуть истинные границы ячейки - вычисленные путем вычитания отступа между ячейками из высоты и ширины моделей столбца и строки - Возвращает:
- прямоугольник, содержащий ячейку в позиции
row,column - См. также:
getIntercellSpacing()
doLayout
public void doLayout()
Принуждает эту таблицу выводить строки и столбцы. Переопределяется, чтобы столбцы могли изменять размер для адаптации к изменению размера родительского контейнера. Изменяет размер одного или нескольких столбцов в таблице так, чтобы общая ширина всех столбцов этой JTable была равна ширине таблицы.
Перед началом вывода метод получает resizingColumn tableHeader. Когда метод вызывается в результате изменения размера окружающего окна, resizingColumn null. Это означает, что изменение размера произошло "вне" JTable и изменение — или "дельта" — должно быть распределено по всем столбцам независимо от режима автоматического изменения размера этой JTable.
Если resizingColumn не null, это один из столбцов в таблице, размер которого изменился, а не сама таблица. В этом случае режимы автоматического изменения размера управляют способом распределения дополнительного (или недостающего) пространства между доступными столбцами.
Режимы следующие:
- AUTO_RESIZE_OFF: Не изменять ширину столбца автоматически вообще. Использовать горизонтальную полосу прокрутки для адаптации столбцов, когда их сумма превышает ширину
Viewport. ЕслиJTableне заключена вJScrollPane, это может привести к отображению части таблицы. - AUTO_RESIZE_NEXT_COLUMN: Используется только столбец после столбца, размер которого изменялся. Это приводит к тому, что "граница" или разделитель между соседними ячейками может быть настраиваемой независимо.
- AUTO_RESIZE_SUBSEQUENT_COLUMNS: Используются все столбцы после того, который изменялся, для поглощения изменений. Это поведение по умолчанию.
- AUTO_RESIZE_LAST_COLUMN: Автоматически изменить размер только последнего столбца. Если границы последнего столбца препятствуют назначению желаемого размера, установите ширину последнего столбца до соответствующего предела и больше не вносите корректировок.
- AUTO_RESIZE_ALL_COLUMNS: Распределяет дельту между всеми столбцами в
JTable, включая тот, который изменяется.
Примечание: Когда JTable вносит корректировки в ширину столбцов, он учитывает их минимальные и максимальные значения абсолютно. Следовательно, даже после вызова этого метода, общая ширина столбцов может не равняться ширине таблицы. В этом случае JTable не переходит в режим AUTO_RESIZE_OFF, чтобы отобразить полосу прокрутки, или нарушать другие обязательства текущего режима автоматического изменения размера — вместо этого он позволяет установить свои границы больше (или меньше), чем сумма минимальных или максимальных значений столбцов, что означает, что может не хватить места для отображения всех столбцов или столбцы не заполнят границы JTable. Соответственно, это приводит к обрезке некоторых столбцов или закрашиванию области цветом фона JTable во время отрисовки.
Механизм распределения дельты между доступными столбцами предоставляется в частном методе в классе JTable:
adjustSizes(long targetSize, final Resizable3 r, boolean inverse)объяснение которого приводится в следующем разделе.
Resizable3 — это закрытый интерфейс, который позволяет любой структуре данных, содержащей коллекцию элементов с размером, предпочтительным размером, максимальным и минимальным размером, манипулировать своими элементами с помощью алгоритма. Распределение дельты
Обзор
Назовем "ДЕЛЬТА" разницу между целевым размером и суммой предпочтительных размеров элементов в r. Индивидуальные размеры вычисляются путем взятия исходных предпочтительных размеров и добавления доли ДЕЛЬТЫ — эта доля основана на том, насколько каждый предпочтительный размер отличается от своей граничной величины (минимальной или максимальной).
Определение
Обозначим индивидуальные ограничения как min[i], max[i] и pref[i].
Обозначим их суммы как MIN, MAX и PREF.
Каждый новый размер будет вычисляться следующим образом:
size[i] = pref[i] + delta[i]где каждая индивидуальная дельта[i] рассчитывается по формуле:
Если (ДЕЛЬТА < 0), мы находимся в режиме уменьшения, где:
DELTA
delta[i] = ------------ * (pref[i] - min[i])
(PREF - MIN) Если (ДЕЛЬТА > 0), мы находимся в режиме расширения, где: DELTA
delta[i] = ------------ * (max[i] - pref[i])
(MAX - PREF) Общий эффект заключается в том, что общий размер смещается на тот же процент, k, к общему минимуму или максимуму, и этот процент гарантирует размещение необходимого пространства, ДЕЛЬТА.
Детали
Примитивное вычисление представленных формул подвергнется накопленным ошибкам округления, вызванным выполнением этой операции с конечной точностью (используя целые числа). Для решения этой проблемы множитель умножения выше постоянно пересчитывается, и это учитывает ошибки округления в предыдущих итерациях. Результатом является алгоритм, который генерирует набор целых чисел, сумма которых точно равна предоставленному targetSize, и делает это, равномерно распределяя ошибки округления по заданным элементам.
Когда значения MAX и MIN достигнуты
Когда targetSize выходит за пределы диапазона [MIN, MAX], алгоритм устанавливает все размеры на соответствующее граничное значение (максимальное или минимальное).
- Переопределяет:
-
doLayoutв классеContainer - См. также:
-
LayoutManager.layoutContainer(java.awt.Container),Container.setLayout(java.awt.LayoutManager),Container.validate()
sizeColumnsToFit
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
Устарело. С версии Swing 1.0.3, заменено на doLayout().
Изменяет размер столбцов таблицы, чтобы они соответствовали доступному пространству.
- См. также:
doLayout()
sizeColumnsToFit
public void sizeColumnsToFit(int resizingColumn)
Устарело, начиная с Java 2 платформы v1.4. Используйте метод doLayout() вместо этого.
- Параметры:
-
resizingColumn— столбец, изменение размера которого потребовало этой корректировки, или -1, если такого столбца нет - См. также:
doLayout()
getToolTipText
public String getToolTipText(MouseEvent event)
Переопределяет метод JComponent в getToolTipText для использования подсказок рендерера, если он имеет установленный текст.
Примечание: Для того, чтобы JTable правильно отображал всплывающие подсказки своих рендереров, JTable должен быть зарегистрированным компонентом в ToolTipManager. Это делается автоматически в initializeLocalVars, но если в дальнейшем JTable получит команду setToolTipText(null), он дезактивирует компонент таблицы, и подсказки от рендереров больше не будут отображаться.
- Переопределяет:
-
getToolTipTextв классеJComponent - См. также:
JComponent.getToolTipText()
setSurrendersFocusOnKeystroke
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
Устанавливает, получают ли редакторы в этом JTable фокус клавиатуры, когда редактор активируется в результате того, что JTable пересылает события клавиатуры для ячейки. По умолчанию этот параметр равен false, и JTable сохраняет фокус, если ячейка не нажата.
- Параметры:
-
surrendersFocusOnKeystroke— true, если редактор должен получить фокус, когда нажатия клавиш активируют редактор - С:
- 1.4
- См. также:
getSurrendersFocusOnKeystroke()
getSurrendersFocusOnKeystroke
public boolean getSurrendersFocusOnKeystroke()
Возвращает true, если редактор должен получить фокус, когда нажатия клавиш активируют редактор
- Возвращает:
- true, если редактор должен получить фокус, когда нажатия клавиш активируют редактор
- С:
- 1.4
- См. также:
setSurrendersFocusOnKeystroke(boolean)
editCellAt
public boolean editCellAt(int row,
int column) Программно запускает редактирование ячейки в row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих индексах редактируема. Обратите внимание, что это удобный метод для editCellAt(int, int, null).
- Параметры:
-
row— строка для редактирования -
column— столбец для редактирования - Возвращает:
- false, если по какой-либо причине ячейку нельзя редактировать или если индексы неверны
editCellAt
public boolean editCellAt(int row,
int column,
EventObject e) Программно запускает редактирование ячейки в row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих индексах редактируема. Для предотвращения редактирования JTable определенной таблицы, столбца или значения ячейки верните false из метода isCellEditable в интерфейсе TableModel.
- Параметры:
-
row— строка для редактирования -
column— столбец для редактирования -
e— событие для передачи вshouldSelectCell; обратите внимание, что с Java 2 платформы v1.2 вызовshouldSelectCellбольше не выполняется - Возвращает:
- false, если по какой-либо причине ячейку нельзя редактировать или если индексы неверны
isEditing
public boolean isEditing()
Возвращает true, если ячейка находится в режиме редактирования.
- Возвращает:
- true, если таблица редактирует ячейку
- См. также:
-
editingColumn,editingRow
getEditorComponent
public Component getEditorComponent()
Возвращает компонент, обрабатывающий сеанс редактирования. Если ничего не редактируется, возвращает null.
- Возвращает:
- Компонент, обрабатывающий сеанс редактирования
getEditingColumn
public int getEditingColumn()
Возвращает индекс столбца, содержащего ячейку, которая в данный момент редактируется. Если ничего не редактируется, возвращает -1.
- Возвращает:
- Индекс столбца, содержащего ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
- См. также:
editingRow
getEditingRow
public int getEditingRow()
Возвращает индекс строки, содержащей ячейку, которая в данный момент редактируется. Если ничего не редактируется, возвращает -1.
- Возвращает:
- Индекс строки, содержащей ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
- См. также:
editingColumn
getUI
public TableUI getUI()
Возвращает объект L&F, который отображает этот компонент.
- Возвращает:
- объект
TableUI, который отображает этот компонент
setUI
public void setUI(TableUI ui)
Устанавливает объект L&F, который отображает этот компонент и перерисовывает его.
- Параметры:
-
ui- объект L&F TableUI - См. также:
UIDefaults.getUI(javax.swing.JComponent)
updateUI
public void updateUI()
Уведомление от UIManager о том, что L&F изменился. Заменяет текущий объект UI последней версией из UIManager.
- Переопределяет:
-
updateUIв классеJComponent - См. также:
JComponent.updateUI()
getUIClassID
public String getUIClassID()
Возвращает суффикс, используемый для построения имени класса L&F, используемого для отображения этого компонента.
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "TableUI"
- См. также:
-
JComponent.getUIClassID(),UIDefaults.getUI(javax.swing.JComponent)
setModel
public void setModel(TableModel dataModel)
Устанавливает модель данных для этой таблицы в newModel и регистрирует её для получения уведомлений о слушателях от новой модели данных.
- Параметры:
-
dataModel- новый источник данных для этой таблицы - Исключения:
-
IllegalArgumentException- еслиnewModelявляетсяnull - См. также:
getModel()
getModel
public TableModel getModel()
Возвращает TableModel, который предоставляет данные, отображаемые этой JTable.
- Возвращает:
- объект
TableModel, который предоставляет данные, отображаемые этойJTable - См. также:
setModel(javax.swing.table.TableModel)
setColumnModel
public void setColumnModel(TableColumnModel columnModel)
Устанавливает модель столбцов для этой таблицы в newModel и регистрируется для получения уведомлений от новой модели столбцов. Также устанавливает модель столбцов JTableHeader в columnModel.
- Параметры:
-
columnModel- новый источник данных для этой таблицы - Исключения:
-
IllegalArgumentException- еслиcolumnModelявляетсяnull - См. также:
getColumnModel()
getColumnModel
public TableColumnModel getColumnModel()
Возвращает TableColumnModel, содержащий всю информацию о столбцах этой таблицы.
- Возвращает:
- объект, предоставляющий состояние столбцов таблицы
- См. также:
setColumnModel(javax.swing.table.TableColumnModel)
setSelectionModel
public void setSelectionModel(ListSelectionModel newModel)
Устанавливает модель выбора строк для этой таблицы в newModel и регистрируется для получения уведомлений от новой модели выбора.
- Параметры:
-
newModel- новая модель выбора - Исключения:
-
IllegalArgumentException- еслиnewModelявляетсяnull - См. также:
getSelectionModel()
getSelectionModel
public ListSelectionModel getSelectionModel()
Возвращает ListSelectionModel, используемый для поддержания состояния выбора строк.
- Возвращает:
- объект, предоставляющий состояние выбора строк,
nullесли выбор строк запрещён - См. также:
setSelectionModel(javax.swing.ListSelectionModel)
sorterChanged
public void sorterChanged(RowSorterEvent e)
RowSorterListener уведомление о том, что RowSorter изменился каким-либо образом.
- Определено в:
-
sorterChangedв интерфейсеRowSorterListener - Параметры:
-
e-RowSorterEventописывающий изменение - Исключения:
-
NullPointerException- еслиeявляетсяnull - С:
- 1.6
tableChanged
public void tableChanged(TableModelEvent e)
Вызывается, когда TableModel этой таблицы генерирует TableModelEvent. TableModelEvent должен быть построен в системе координат модели; соответствующее отображение в систему координат представления выполняется этим JTable при получении события.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
Обратите внимание, что начиная с версии 1.3, этот метод очищает выбранный элемент, если таковой имеется.
- Определено в:
-
tableChangedв интерфейсеTableModelListener
columnAdded
public void columnAdded(TableColumnModelEvent e)
Вызывается при добавлении столбца в модель столбцов таблицы.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
columnAddedв интерфейсеTableColumnModelListener - См. также:
TableColumnModelListener
columnRemoved
public void columnRemoved(TableColumnModelEvent e)
Вызывается при удалении столбца из модели столбцов таблицы.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
columnRemovedв интерфейсеTableColumnModelListener - См. также:
TableColumnModelListener
columnMoved
public void columnMoved(TableColumnModelEvent e)
Вызывается при изменении расположения столбца. Если ячейка редактируется, редактирование останавливается, и ячейка перерисовывается.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
columnMovedв интерфейсеTableColumnModelListener - Параметры:
-
e- полученное событие - См. также:
TableColumnModelListener
columnMarginChanged
public void columnMarginChanged(ChangeEvent e)
Вызывается при перемещении столбца из-за изменения отступа. Если ячейка редактируется, редактирование останавливается, и ячейка перерисовывается.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
columnMarginChangedв интерфейсеTableColumnModelListener - Параметры:
-
e- полученное событие - См. также:
TableColumnModelListener
columnSelectionChanged
public void columnSelectionChanged(ListSelectionEvent e)
Вызывается при изменении модели выбора столбцов TableColumnModel.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
columnSelectionChangedв интерфейсеTableColumnModelListener - Параметры:
-
e- полученное событие - См. также:
TableColumnModelListener
valueChanged
public void valueChanged(ListSelectionEvent e)
Вызывается при изменении выбора строк — перерисовывается для отображения нового выбора.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
valueChangedв интерфейсеListSelectionListener - Параметры:
-
e- полученное событие - См. также:
ListSelectionListener
editingStopped
public void editingStopped(ChangeEvent e)
Вызывается по окончании редактирования. Изменения сохраняются, и редактор удаляется.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
editingStoppedв интерфейсеCellEditorListener - Параметры:
-
e- полученное событие - См. также:
CellEditorListener
editingCanceled
public void editingCanceled(ChangeEvent e)
Вызывается при отмене редактирования. Объект редактора удаляется, и ячейка перерисовывается.
Код приложения не будет использовать эти методы явно, они используются внутри JTable.
- Определено в:
-
editingCanceledв интерфейсеCellEditorListener - Параметры:
-
e- полученное событие - См. также:
CellEditorListener
setPreferredScrollableViewportSize
public void setPreferredScrollableViewportSize(Dimension size)
Устанавливает предпочтительный размер области просмотра для этой таблицы.
- Параметры:
-
size- объектDimension, определяющийpreferredSizeобласти просмотраJViewport - См. также:
Scrollable.getPreferredScrollableViewportSize()
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
Возвращает предпочтительный размер области просмотра для этой таблицы.
- Определено в:
-
getPreferredScrollableViewportSizeв интерфейсеScrollable - Возвращает:
- объект
DimensionсодержащийpreferredSizeобласти просмотраJViewport - См. также:
Scrollable.getPreferredScrollableViewportSize()
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction) Возвращает величину прокрутки (в пикселях), которая полностью отображает новую строку или столбец (в зависимости от ориентации).
Этот метод вызывается каждый раз, когда пользователь запрашивает прокрутку на единицу.
- Указано:
-
getScrollableUnitIncrementв интерфейсеScrollable - Параметры:
-
visibleRect- область просмотра, видимая внутри области просмотра -
orientation- либоSwingConstants.VERTICAL, либоSwingConstants.HORIZONTAL -
direction- меньше нуля для прокрутки вверх/влево, больше нуля для вниз/вправо - Возвращает:
- приращение "единицы" для прокрутки в указанном направлении
- См. также:
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
getScrollableBlockIncrement
public int getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction) Возвращает visibleRect.height или visibleRect.width, в зависимости от ориентации этой таблицы. Обратите внимание, что начиная с Swing 1.1.1 (Java 2 v 1.2.2) возвращаемое значение гарантирует чистое выравнивание области просмотра на границе строки.
- Указано:
-
getScrollableBlockIncrementв интерфейсеScrollable - Параметры:
-
visibleRect- Область просмотра, видимая внутри области просмотра -
orientation- Либо SwingConstants.VERTICAL, либо SwingConstants.HORIZONTAL. -
direction- Меньше нуля для прокрутки вверх/влево, больше нуля для вниз/вправо. - Возвращает:
-
visibleRect.heightилиvisibleRect.widthв соответствии с ориентацией - См. также:
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
getScrollableTracksViewportWidth
public boolean getScrollableTracksViewportWidth()
Возвращает false, если autoResizeMode установлено в AUTO_RESIZE_OFF, что указывает на то, что ширина области просмотра не определяет ширину таблицы. В противном случае возвращает true.
- Указано:
-
getScrollableTracksViewportWidthв интерфейсеScrollable - Возвращает:
- false, если
autoResizeModeустановлено вAUTO_RESIZE_OFF, в противном случае возвращает true - См. также:
Scrollable.getScrollableTracksViewportWidth()
getScrollableTracksViewportHeight
public boolean getScrollableTracksViewportHeight()
Возвращает false для указания того, что высота области просмотра не определяет высоту таблицы, если getFillsViewportHeight равно true, и предпочтительная высота таблицы меньше высоты области просмотра.
- Указано:
-
getScrollableTracksViewportHeightв интерфейсеScrollable - Возвращает:
-
false, еслиgetFillsViewportHeightравноtrue, и таблица должна быть растянута, чтобы заполнить область просмотра - См. также:
-
Scrollable.getScrollableTracksViewportHeight(),setFillsViewportHeight(boolean),getFillsViewportHeight()
setFillsViewportHeight
public void setFillsViewportHeight(boolean fillsViewportHeight)
Устанавливает, всегда ли эта таблица делается достаточно большой, чтобы заполнить высоту окружающего окна просмотра. Если предпочтительная высота таблицы меньше высоты окна просмотра, таблица будет растянута, чтобы заполнить окно. Другими словами, это гарантирует, что таблица никогда не будет меньше области просмотра. По умолчанию для этого свойства установлено значение false.
- Параметры:
-
fillsViewportHeight- всегда ли эта таблица делается достаточно большой, чтобы заполнить высоту окружающего окна просмотра - С тех пор:
- 1.6
- См. также:
-
getFillsViewportHeight(),getScrollableTracksViewportHeight()
getFillsViewportHeight
public boolean getFillsViewportHeight()
Возвращает, всегда ли эта таблица делается достаточно большой, чтобы заполнить высоту окружающего окна просмотра.
- Возвращает:
- всегда ли эта таблица делается достаточно большой, чтобы заполнить высоту окружающего окна просмотра
- С тех пор:
- 1.6
- См. также:
setFillsViewportHeight(boolean)
processKeyBinding
protected boolean processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed) Описание скопировано из класса: JComponent
Вызывается для обработки нажатий клавиш для ks в результате KeyEvent e. Это получает соответствующий InputMap, получает привязку, получает действие из ActionMap, а затем (если действие найдено и компонент активен) вызывает notifyAction для уведомления действия.
- Переопределяет:
-
processKeyBindingв классеJComponent - Параметры:
-
ks- запрашиваемыйKeyStroke -
e-KeyEvent -
condition- одно из следующих значений:- JComponent.WHEN_FOCUSED
- JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
- JComponent.WHEN_IN_FOCUSED_WINDOW
-
pressed- true, если нажата клавиша - Возвращает:
- true, если была привязка к действию, и действие было активным
createDefaultRenderers
protected void createDefaultRenderers()
Создает стандартные рендеры ячеек для объектов, чисел, двойных значений, дат, булевых значений и значков.
- См. также:
DefaultTableCellRenderer
createDefaultEditors
protected void createDefaultEditors()
Создает стандартные редакторы ячеек для объектов, чисел и булевых значений.
- См. также:
DefaultCellEditor
initializeLocalVars
protected void initializeLocalVars()
Инициализирует свойства таблицы их значениями по умолчанию.
createDefaultDataModel
protected TableModel createDefaultDataModel()
Возвращает объект стандартной модели таблицы, который является DefaultTableModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели таблицы.
- Возвращает:
- объект стандартной модели таблицы
- См. также:
DefaultTableModel
createDefaultColumnModel
protected TableColumnModel createDefaultColumnModel()
Возвращает объект стандартной модели столбцов, который является DefaultTableColumnModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели столбцов.
- Возвращает:
- объект стандартной модели столбцов
- См. также:
DefaultTableColumnModel
createDefaultSelectionModel
protected ListSelectionModel createDefaultSelectionModel()
Возвращает объект стандартной модели выделения, который является DefaultListSelectionModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели выделения.
- Возвращает:
- объект стандартной модели выделения
- См. также:
DefaultListSelectionModel
createDefaultTableHeader
protected JTableHeader createDefaultTableHeader()
Возвращает объект стандартного заголовка таблицы, который является JTableHeader. Подкласс может переопределить этот метод, чтобы вернуть другой объект заголовка таблицы.
- Возвращает:
- объект стандартного заголовка таблицы
- См. также:
JTableHeader
resizeAndRepaint
protected void resizeAndRepaint()
Эквивалентно revalidate за которым следует repaint.
getCellEditor
public TableCellEditor getCellEditor()
Возвращает активный редактор ячейки, который является null , если таблица не находится в режиме редактирования.
- Возвращает:
- объект
TableCellEditor, отвечающий за редактирование, илиnull, если таблица не находится в режиме редактирования. - См. также:
-
cellEditor,getCellEditor(int, int)
setCellEditor
public void setCellEditor(TableCellEditor anEditor)
Устанавливает активный редактор ячейки.
- Параметры:
-
anEditor- активный редактор ячейки - См. также:
cellEditor
setEditingColumn
public void setEditingColumn(int aColumn)
Устанавливает переменную editingColumn.
- Параметры:
-
aColumn- столбец ячейки, подлежащей редактированию - См. также:
editingColumn
setEditingRow
public void setEditingRow(int aRow)
Устанавливает переменную editingRow.
- Параметры:
-
aRow- строка ячейки, подлежащей редактированию - См. также:
editingRow
getCellRenderer
public TableCellRenderer getCellRenderer(int row,
int column) Возвращает подходящий рендер для ячейки, заданной этой строкой и столбцом. Если у TableColumn для этого столбца есть рендер, отличный от null, возвращает его. В противном случае находит класс данных в этом столбце (используя getColumnClass) и возвращает стандартный рендер для этого типа данных.
Примечание: В пакете таблиц внутренние реализации всегда используют этот метод для предоставления рендеров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Параметры:
-
row- строка рендерируемой ячейки, где 0 - первая строка -
column- столбец рендерируемой ячейки, где 0 - первый столбец - Возвращает:
- назначенный рендер; если
nullвозвращает стандартный рендер для этого типа объекта - См. также:
-
DefaultTableCellRenderer,TableColumn.setCellRenderer(javax.swing.table.TableCellRenderer),setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)
prepareRenderer
public Component prepareRenderer(TableCellRenderer renderer,
int row,
int column) Подготавливает рендерер, запрашивая у модели данных значение и состояние выбора ячейки в row, column. Возвращает компонент (который может быть Component или JComponent) под местоположением события.
Во время печати этот метод будет настраивать рендерер без указания выбора или фокуса, чтобы предотвратить их отображение в печатном выводе. Чтобы выполнить другие настройки, основанные на том, печатается ли таблица или нет, вы можете проверить значение JComponent.isPaintingForPrint(), либо здесь, либо в пользовательских рендерерах.
Примечание: На протяжении всего пакета таблиц внутренние реализации всегда используют этот метод для подготовки рендереров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Параметры:
-
renderer-TableCellRendererдля подготовки -
row- строка ячейки для рендеринга, где 0 - первая строка -
column- столбец ячейки для рендеринга, где 0 - первый столбец - Возвращает:
Componentпод местоположением события
getCellEditor
public TableCellEditor getCellEditor(int row,
int column) Возвращает подходящий редактор для ячейки, заданной row и column. Если для этого столбца TableColumn имеет редактор, отличным от null, возвращает его. В противном случае находит класс данных в этом столбце (используя getColumnClass) и возвращает редактор по умолчанию для этого типа данных.
Примечание: На протяжении всего пакета таблиц внутренние реализации всегда используют этот метод для предоставления редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Параметры:
-
row- строка ячейки для редактирования, где 0 - первая строка -
column- столбец ячейки для редактирования, где 0 - первый столбец - Возвращает:
- редактор для этой ячейки; если
nullвозвращает редактор по умолчанию для этого типа ячейки - См. также:
DefaultCellEditor
prepareEditor
public Component prepareEditor(TableCellEditor editor,
int row,
int column) Подготавливает редактор, запрашивая у модели данных значение и состояние выбора ячейки в row, column.
Примечание: На протяжении всего пакета таблиц внутренние реализации всегда используют этот метод для подготовки редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Параметры:
-
editor-TableCellEditorдля настройки -
row- строка ячейки для редактирования, где 0 - первая строка -
column- столбец ячейки для редактирования, где 0 - первый столбец - Возвращает:
- редактируемая
Component
removeEditor
public void removeEditor()
Отбрасывает объект редактора и освобождает занимаемое им место для рендеринга ячейки.
paramString
protected String paramString()
Возвращает строковое представление этой таблицы. Этот метод предназначен только для отладки, и содержимое и формат возвращаемой строки могут различаться между реализациями. Возвращаемая строка может быть пустой, но не null.
- Переопределяет:
-
paramStringв классеJComponent - Возвращает:
- строковое представление этой таблицы
public boolean print()
throws PrinterException Метод-удобство, который отображает диалог печати, а затем печатает эту JTable в режиме PrintMode.FIT_WIDTH, без заголовка или подвала. В течение процесса печати будет отображаться модальный диалог-прогресс с опцией отмены.
Примечание: В режиме без графического интерфейса диалоги не отображаются, и печать происходит на принтере по умолчанию.
- Возвращает:
- true, если печать не отменена пользователем
- Исключения:
-
SecurityException- если этому потоку не разрешено инициировать запрос на задачу печати -
PrinterException- если в системе печати произошла ошибка, из-за которой задача была прервана - С:
- 1.5
- См. также:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService),getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode)
throws PrinterException Метод-удобство, который отображает диалог печати, а затем печатает эту JTable в заданном режиме печати без заголовка или подвала. В течение процесса печати будет отображаться модальный диалог-прогресс с опцией отмены.
Примечание: В режиме без графического интерфейса диалоги не отображаются, и печать происходит на принтере по умолчанию.
- Параметры:
-
printMode- режим печати, который должен использовать печатаемый объект - Возвращает:
- true, если печать не отменена пользователем
- Исключения:
-
SecurityException- если этому потоку не разрешено инициировать запрос на задачу печати -
PrinterException- если в системе печати произошла ошибка, из-за которой задача была прервана - С:
- 1.5
- См. также:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService),getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat)
throws PrinterException Метод-удобство, который отображает диалог печати, а затем печатает эту JTable в заданном режиме печати с указанным заголовком и подвалом. В течение процесса печати будет отображаться модальный диалог-прогресс с опцией отмены.
Примечание: В режиме без графического интерфейса диалоги не отображаются, и печать происходит на принтере по умолчанию.
- Параметры:
-
printMode- режим печати, который должен использовать печатаемый объект -
headerFormat-MessageFormat, задающий текст для использования в заголовке печати, или null для отсутствия -
footerFormat-MessageFormat, задающий текст для использования в подвале печати, или null для отсутствия - Возвращает:
- true, если печать не отменена пользователем
- Исключения:
-
SecurityException- если этому потоку не разрешено инициировать запрос на задачу печати -
PrinterException- если в системе печати произошла ошибка, из-за которой задача была прервана - С:
- 1.5
- См. также:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService),getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintRequestAttributeSet attr,
boolean interactive)
throws PrinterException,
HeadlessException Печатает эту таблицу, как указано в полном методе print, с принтером по умолчанию, указанным как служба печати.
- Параметры:
-
printMode- режим печати, который должен использовать печатаемый объект -
headerFormat-MessageFormat, задающий текст для использования в заголовке печати, илиnullдля отсутствия -
footerFormat-MessageFormatзадающий текст для использования в подвале печати, илиnullдля отсутствия -
showPrintDialog- отображать ли диалог печати -
attr-PrintRequestAttributeSetзадающий любые атрибуты печати, илиnullдля отсутствия -
interactive- печатать в интерактивном режиме - Возвращает:
- true, если печать не отменена пользователем
- Исключения:
-
HeadlessException- если метод запрошен отобразить диалог печати или работать интерактивно, иGraphicsEnvironment.isHeadlessвозвращаетtrue -
SecurityException- если этому потоку не разрешено инициировать запрос на задачу печати -
PrinterException- если в системе печати произошла ошибка, из-за которой задача была прервана - С:
- 1.5
- См. также:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService),getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintRequestAttributeSet attr,
boolean interactive,
PrintService service)
throws PrinterException,
HeadlessException Печатает эту JTable. Выполняет шаги, которые большинство разработчиков предприняли бы для печати JTable. Короче говоря, подготавливает таблицу, вызывает getPrintable, чтобы получить соответствующий Printable, и отправляет его на принтер.
Параметр boolean позволяет указать, отображается ли диалоговое окно печати пользователю. Если отображается, пользователь может использовать диалоговое окно для изменения принтера назначения или атрибутов печати, или даже для отмены печати. Еще два параметра позволяют указать PrintService и атрибуты печати. Эти параметры могут быть использованы для предоставления начальных значений для диалогового окна печати или для задания значений, когда диалоговое окно не отображается.
Второй параметр boolean позволяет указать, выполнять ли печать в интерактивном режиме. Если true, для всего периода печати отображается модальное диалоговое окно с возможностью отмены. Это диалоговое окно также предотвращает любые действия пользователя, которые могут повлиять на таблицу. Однако оно не может предотвратить изменение таблицы кодом (например, другим потоком, который публикует обновления с использованием SwingUtilities.invokeLater). Поэтому разработчик несет ответственность за обеспечение того, чтобы никакой другой код не изменял таблицу каким-либо образом во время печати (недопустимые изменения включают изменения: размера, рендереров или базовых данных). Поведение печати не определено, когда таблица изменяется во время печати.
Если для этого параметра задано false, диалоговое окно не будет отображаться, и печать начнется немедленно в потоке обработки событий. Это блокирует обработку других событий, включая перерисовку, до завершения печати. Хотя это эффективно предотвращает изменение таблицы, это не обеспечивает хорошего пользовательского опыта. По этой причине указание false рекомендуется только при печати из приложения без видимого графического интерфейса.
Примечание: Попытка отобразить диалоговое окно печати или выполнить печать интерактивно в режиме без графического интерфейса приведет к HeadlessException.
Перед получением объекта для печати этот метод корректно завершит редактирование, если это необходимо, чтобы предотвратить отображение редактора в результатах печати. Кроме того, JTable подготовит свои рендеры во время печати таким образом, чтобы выделение и фокус не отображались. Для дальнейшей настройки внешнего вида таблицы в выводе разработчики могут предоставить пользовательские рендеры или код рисования, который учитывает значение JComponent.isPaintingForPrint().
См. getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) для получения более подробной информации о том, как печатается таблица.
- Parameters:
-
printMode- режим печати, который должен использовать объект для печати -
headerFormat-MessageFormat, указывающий текст, который будет использоваться для печати заголовка, илиnullдля отсутствия -
footerFormat-MessageFormat, указывающий текст, который будет использоваться для печати подвала, илиnullдля отсутствия -
showPrintDialog- отображать ли диалоговое окно печати -
attr-PrintRequestAttributeSet, указывающий атрибуты печати, илиnullдля отсутствия -
interactive- выполнять ли печать в интерактивном режиме -
service- конечныйPrintService, илиnullдля использования принтера по умолчанию - Returns:
- true, если печать не отменена пользователем
- Throws:
-
HeadlessException- если метод запрошен для отображения диалогового окна печати или выполнения печати интерактивно, иGraphicsEnvironment.isHeadlessвозвращаетtrue -
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkPrintJobAccess()не разрешает этому потоку создавать запрос задания печати -
PrinterException- если ошибка в системе печати приводит к прерыванию задания - Since:
- 1.6
- See Also:
-
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat),GraphicsEnvironment.isHeadless()
getPrintable
public Printable getPrintable(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat) Возвращает объект для печати этой JTable.
Этот метод предназначен для тех, кто хочет настроить реализацию Printable по умолчанию, используемую методами JTable.
Объект для печати может быть запрошен в одном из двух режимов печати. В обоих режимах строки таблицы естественным образом распределяются по страницам, размещая по возможности максимальное количество строк на каждой странице. PrintMode.NORMAL указывает, что таблица должна печататься в текущем размере. В этом режиме может потребоваться распределение столбцов по страницам аналогичным образом. Когда это необходимо, столбцы распределяются в порядке, согласованном с ComponentOrientation таблицы. PrintMode.FIT_WIDTH указывает, что вывод должен быть уменьшен, если необходимо, чтобы весь столбец (а, следовательно, все столбцы) размещались на каждой странице. Ширина и высота масштабируются равномерно, сохраняя соотношение сторон вывода.
Текст заголовка Printable помещает соответствующий раздел из JTableHeader таблицы на каждой странице, если он есть.
Текст заголовка и подвала может быть добавлен к выводу, передав аргументы MessageFormat. Код печати запрашивает строки из форматов, предоставляя один элемент, который может быть включен в отформатированную строку: Integer (номер текущей страницы).
Рекомендуется ознакомиться с документацией MessageFormat, так как некоторые символы, такие как одинарная кавычка, являются специальными и должны быть экранированы.
Вот пример создания объекта для печати, который может использоваться для печати "Таблица Дюка: Страница - " и текущего номера страницы:
// notice the escaping of the single quote
// notice how the page number is included with "{0}"
MessageFormat format = new MessageFormat("Duke''s Table: Page - {0}");Printable ограничивает вывод области печати каждой страницы, которую он печатает. В определенных ситуациях может оказаться невозможным разместить всё содержимое страницы в этой области. В таких случаях вывод может быть обрезаным, но реализация делает все возможное для достижения разумного результата. Вот несколько ситуаций, когда это может произойти, и как эта конкретная реализация может их обработать:
- В любом режиме, когда текст заголовка или подвала слишком широк, чтобы полностью поместиться в область печати — печатается как можно больше текста, начиная с начала, как определено
ComponentOrientationтаблицы. - В любом режиме, когда строка слишком высока, чтобы поместиться в область печати — печатается верхняя часть строки, а нижняя граница таблицы не рисуется.
- В
PrintMode.NORMALрежиме, когда столбец слишком широк, чтобы поместиться в область печати — печатается центральная часть столбца, а левая и правая границы таблицы не выводятся.
Совершенно допустимо, что этот Printable будет обернут внутри другого объекта для создания сложных отчетов и документов. Вы можете даже запросить, чтобы различные страницы были отрисованы в областях печати разного размера. Реализация должна быть готова к этому (возможно, выполняя расчеты макета на лету). Однако предоставление различных высот каждой странице, скорее всего, не будет хорошо работать с PrintMode.NORMAL, когда ему нужно распределить столбцы по страницам.
Что касается настройки внешнего вида таблицы в результатах печати, сам JTable позаботится о скрытии выделения и фокуса во время печати. Для дополнительных настроек ваш код рендеринга или рисования может настроить внешний вид на основе значения JComponent.isPaintingForPrint().
Также, перед вызовом этого метода вы можете сначала изменить состояние таблицы, например, отменить редактирование ячеек или заставить пользователя должным образом изменить размер таблицы. Однако вы не должны изменять состояние таблицы после того, как этот Printable был получен (недопустимые изменения включают изменения размера или базовых данных). Поведение возвращаемого Printable не определено после изменения таблицы.
- Parameters:
-
printMode- режим печати, который должен использовать объект для печати -
headerFormat-MessageFormatуказывающий текст, который будет использоваться для печати заголовка, или null для отсутствия -
footerFormat-MessageFormatуказывающий текст, который будет использоваться для печати подвала, или null для отсутствия - Returns:
- объект для печати этой JTable
- Since:
- 1.5
- See Also:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean),Printable,PrinterJob
getAccessibleContext
public AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этой JTable. Для таблиц AccessibleContext имеет вид AccessibleJTable. Новый экземпляр AccessibleJTable создается при необходимости.
- Specified by:
-
getAccessibleContextв интерфейсеAccessible - Overrides:
-
getAccessibleContextв классеComponent - Returns:
- AccessibleJTable, который служит AccessibleContext для этой JTable
© 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.