Класс JTable
- Все реализуемые интерфейсы:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable
@JavaBean(defaultProperty="UI", description="A component which displays data in a two dimensional grid.") public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener
JTable используется для отображения и редактирования обычных двумерных таблиц ячеек. См. раздел Как использовать таблицы в Руководстве по Java, где представлены инструкции и примеры использования 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 Integer.valueOf(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(JTable.PrintMode, MessageFormat, MessageFormat).
Как и для всех классов JComponent, можно использовать InputMap и ActionMap, чтобы связать объект Action с объектом KeyStroke и выполнять действие при заданных условиях.
Предупреждение: Swing не является потокобезопасным. Дополнительные сведения см. в разделе Политика потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, в пакет java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class |
JTable.AccessibleJTable |
Этот класс реализует поддержку специальных возможностей для класса JTable. |
static final class |
JTable.DropLocation |
Подкласс TransferHandler.DropLocation, представляющий место сброса для JTable. |
static enum |
JTable.PrintMode |
Режимы печати, используемые при печати объектов JTable. |
Вложенные классы и интерфейсы, объявленные в классе JComponent
JComponent.AccessibleJComponent
Вложенные классы и интерфейсы, объявленные в классе Container
Container.AccessibleAWTContainer
Вложенные классы и интерфейсы, объявленные в классе Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
AUTO_RESIZE_ALL_COLUMNS |
При каждой операции изменения размера пропорционально изменять ширину всех столбцов. |
static final int |
AUTO_RESIZE_LAST_COLUMN |
При каждой операции изменения размера применять изменения только к последнему столбцу. |
static final int |
AUTO_RESIZE_NEXT_COLUMN |
При изменении столбца в пользовательском интерфейсе изменять следующий столбец в противоположном направлении. |
static final int |
AUTO_RESIZE_OFF |
Не изменять ширину столбцов автоматически; вместо этого использовать горизонтальную полосу прокрутки. |
static final int |
AUTO_RESIZE_SUBSEQUENT_COLUMNS |
При изменении размера в пользовательском интерфейсе изменять последующие столбцы, чтобы сохранить общую ширину; это поведение используется по умолчанию. |
protected boolean |
autoCreateColumnsFromModel |
Если задано значение true, таблица запросит TableModel для создания набора столбцов по умолчанию. |
protected int |
autoResizeMode |
Определяет, изменяет ли таблица ширину своих столбцов автоматически, чтобы они занимали всю ширину таблицы, и каким образом выполняется изменение размера. |
protected TableCellEditor |
cellEditor |
Активный объект редактора ячейки, который занимает область экрана, отведённую текущей ячейке, и позволяет пользователю изменять её содержимое. |
protected boolean |
cellSelectionEnabled |
Устарело начиная с платформы Java 2 версии 1.3. |
protected TableColumnModel |
columnModel |
TableColumnModel таблицы. |
protected TableModel |
dataModel |
TableModel таблицы. |
protected Hashtable |
defaultEditorsByColumnClass |
Таблица объектов, отображающих и редактирующих содержимое ячейки, индексируемая по классу, как указано в getColumnClass интерфейса TableModel. |
protected Hashtable |
defaultRenderersByColumnClass |
Таблица объектов, отображающих содержимое ячейки, индексируемая по классу, как указано в getColumnClass интерфейса TableModel. |
protected int |
editingColumn |
Обозначает столбец редактируемой ячейки. |
protected int |
editingRow |
Обозначает строку редактируемой ячейки. |
protected Component |
editorComp |
При редактировании — Component, выполняющий редактирование. |
protected Color |
gridColor |
Цвет сетки. |
protected Dimension |
preferredViewportSize |
Используется интерфейсом Scrollable для определения первоначально видимой области. |
protected int |
rowHeight |
Высота каждой строки таблицы в пикселях. |
protected int |
rowMargin |
Высота в пикселях отступа между ячейками каждой строки. |
protected boolean |
rowSelectionAllowed |
Значение true, если в этой таблице разрешено выделение строк. |
protected Color |
selectionBackground |
Цвет фона выделенных ячеек. |
protected Color |
selectionForeground |
Цвет текста выделенных ячеек. |
protected ListSelectionModel |
selectionModel |
ListSelectionModel таблицы, используемый для отслеживания выделения строк. |
protected boolean |
showHorizontalLines |
Таблица отображает горизонтальные линии между ячейками, если showHorizontalLines имеет значение true. |
protected boolean |
showVerticalLines |
Таблица отображает вертикальные линии между ячейками, если showVerticalLines имеет значение true. |
protected JTableHeader |
tableHeader |
TableHeader, связанный с таблицей. |
Поля, объявленные в классе JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Поля, объявленные в классе Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Поля, объявленные в интерфейсе ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JTable() |
Создаёт JTable по умолчанию, инициализированный моделью данных, моделью столбцов и моделью выделения по умолчанию. |
JTable |
Создаёт JTable с numRows и numColumns пустых ячеек, используя DefaultTableModel. |
JTable |
Создаёт JTable для отображения значений двумерного массива rowData с именами столбцов columnNames. |
JTable |
Создаёт JTable для отображения значений из Vector объектов типа Vectors, rowData, с именами столбцов columnNames. |
JTable |
Создаёт JTable, инициализированный моделью данных dm, моделью столбцов и моделью выделения по умолчанию. |
JTable |
Создаёт JTable, инициализированный моделью данных dm, моделью столбцов cm и моделью выделения по умолчанию. |
JTable |
Создаёт JTable, инициализированный моделью данных dm, моделью столбцов cm и моделью выделения sm. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addColumn |
Добавляет aColumn в конец массива столбцов, содержащегося в модели столбцов этого JTable. |
void |
addColumnSelectionInterval |
Добавляет столбцы с index0 по index1 включительно к текущему выделению. |
void |
addNotify() |
Вызывает метод configureEnclosingScrollPane. |
void |
addRowSelectionInterval |
Добавляет строки с index0 по index1 включительно к текущему выделению. |
void |
changeSelection |
Обновляет модели выделения таблицы в зависимости от состояния двух флагов: toggle и extend. |
void |
clearSelection() |
Снимает выделение со всех выделенных столбцов и строк. |
void |
columnAdded |
Вызывается при добавлении столбца в модель столбцов таблицы. |
int |
columnAtPoint |
Возвращает индекс столбца, в котором находится point, или -1, если результат не входит в диапазон [0, getColumnCount()-1]. |
void |
columnMarginChanged |
Вызывается при перемещении столбца из-за изменения отступа. |
void |
columnMoved |
Вызывается при изменении положения столбца. |
void |
columnRemoved |
Вызывается при удалении столбца из модели столбцов таблицы. |
void |
columnSelectionChanged |
Вызывается при изменении модели выделения TableColumnModel. |
protected void |
configureEnclosingScrollPane() |
Если этот JTable является viewportView внешнего JScrollPane (что обычно и происходит), настройте этот ScrollPane, в частности установив tableHeader таблицы в качестве columnHeaderView области прокрутки. |
int |
convertColumnIndexToModel |
Преобразует индекс столбца в представлении в позиции viewColumnIndex в индекс столбца в модели таблицы. |
int |
convertColumnIndexToView |
Преобразует индекс столбца в модели таблицы в позиции modelColumnIndex в индекс столбца в представлении. |
int |
convertRowIndexToModel |
Преобразует индекс строки в представлении в индекс базовой TableModel. |
int |
convertRowIndexToView |
Преобразует индекс строки в TableModel в индекс строки в представлении. |
protected TableColumnModel |
createDefaultColumnModel() |
Возвращает объект модели столбцов по умолчанию, представляющий собой DefaultTableColumnModel. |
void |
createDefaultColumnsFromModel() |
Создает столбцы таблицы по умолчанию на основе модели данных, используя метод getColumnCount, определенный в интерфейсе TableModel. |
protected TableModel |
createDefaultDataModel() |
Возвращает объект модели таблицы по умолчанию, представляющий собой DefaultTableModel. |
protected void |
createDefaultEditors() |
Создает редакторы ячеек по умолчанию для объектов, чисел и логических значений. |
protected void |
createDefaultRenderers() |
Создает средства отображения ячеек по умолчанию для объектов, чисел, чисел с плавающей точкой двойной точности, дат, логических значений и значков. |
protected ListSelectionModel |
createDefaultSelectionModel() |
Возвращает объект модели выделения по умолчанию, представляющий собой DefaultListSelectionModel. |
protected JTableHeader |
createDefaultTableHeader() |
Возвращает объект заголовка таблицы по умолчанию, представляющий собой JTableHeader. |
static JScrollPane |
createScrollPaneForTable |
Устарело. |
void |
doLayout() |
Выполняет компоновку строк и столбцов этой таблицы. |
boolean |
editCellAt |
Программно начинает редактирование ячейки в позициях row и column, если эти индексы находятся в допустимом диапазоне и ячейка по указанным индексам доступна для редактирования. |
boolean |
editCellAt |
Программно начинает редактирование ячейки в позициях row и column, если эти индексы находятся в допустимом диапазоне и ячейка по указанным индексам доступна для редактирования. |
void |
editingCanceled |
Вызывается при отмене редактирования. |
void |
editingStopped |
Вызывается при завершении редактирования. |
AccessibleContext |
getAccessibleContext() |
Возвращает AccessibleContext, связанный с этой JTable. |
boolean |
getAutoCreateColumnsFromModel() |
Определяет, будет ли таблица создавать столбцы по умолчанию на основе модели. |
boolean |
getAutoCreateRowSorter() |
Возвращает true, если при каждом изменении модели следует создавать новый RowSorter и устанавливать его в качестве сортировщика таблицы; в противном случае возвращает false. |
int |
getAutoResizeMode() |
Возвращает режим автоматического изменения размера таблицы. |
TableCellEditor |
getCellEditor() |
Возвращает активный редактор ячеек или null, если в таблице в данный момент ничего не редактируется. |
TableCellEditor |
getCellEditor |
Возвращает подходящий редактор для ячейки, заданной индексами row и column. |
Rectangle |
getCellRect |
Возвращает прямоугольник ячейки, расположенной на пересечении row и column. |
TableCellRenderer |
getCellRenderer |
Возвращает подходящее средство отображения для ячейки, заданной этой строкой и столбцом. |
boolean |
getCellSelectionEnabled() |
Возвращает true, если включены модели выделения строк и столбцов. |
TableColumn |
getColumn |
Возвращает объект TableColumn для столбца таблицы, идентификатор которого равен identifier при сравнении с помощью equals. |
Class |
getColumnClass |
Возвращает тип столбца, отображаемого в представлении в позиции column. |
int |
getColumnCount() |
Возвращает количество столбцов в модели столбцов. |
TableColumnModel |
getColumnModel() |
Возвращает TableColumnModel, содержащий все сведения о столбцах этой таблицы. |
String |
getColumnName |
Возвращает имя столбца, отображаемого в представлении в позиции column. |
boolean |
getColumnSelectionAllowed() |
Возвращает true, если столбцы можно выделять. |
TableCellEditor |
getDefaultEditor |
Возвращает редактор, используемый, если в TableColumn не задан редактор. |
TableCellRenderer |
getDefaultRenderer |
Возвращает средство отображения ячеек, используемое, если в TableColumn не задано средство отображения. |
boolean |
getDragEnabled() |
Возвращает признак включения автоматической обработки перетаскивания. |
final JTable.DropLocation |
getDropLocation() |
Возвращает место, которое этот компонент должен визуально обозначить как место сброса при выполнении операции DnD над компонентом, или null, если в данный момент место не нужно отображать. |
final DropMode |
getDropMode() |
Возвращает режим сброса для этого компонента. |
int |
getEditingColumn() |
Возвращает индекс столбца, содержащего редактируемую в данный момент ячейку. |
int |
getEditingRow() |
Возвращает индекс строки, содержащей редактируемую в данный момент ячейку. |
Component |
getEditorComponent() |
Возвращает компонент, управляющий сеансом редактирования. |
boolean |
getFillsViewportHeight() |
Возвращает признак того, что таблица всегда увеличивается до размера, достаточного для заполнения высоты внешней области просмотра. |
Color |
getGridColor() |
Возвращает цвет линий сетки. |
Dimension |
getIntercellSpacing() |
Возвращает горизонтальный и вертикальный интервалы между ячейками. |
TableModel |
getModel() |
Возвращает TableModel, предоставляющий данные, отображаемые этой JTable. |
Dimension |
getPreferredScrollableViewportSize() |
Возвращает предпочтительный размер области просмотра для этой таблицы. |
Printable |
getPrintable |
Возвращает Printable для печати этой JTable. |
int |
getRowCount() |
Возвращает количество строк, которое можно отобразить в JTable при неограниченном доступном пространстве. |
int |
getRowHeight() |
Возвращает высоту строки таблицы в пикселях. |
int |
getRowHeight |
Возвращает высоту ячеек в row в пикселях. |
int |
getRowMargin() |
Возвращает размер пустого пространства между ячейками в пикселях. |
boolean |
getRowSelectionAllowed() |
Возвращает true, если строки можно выделять. |
RowSorter |
getRowSorter() |
Возвращает объект, отвечающий за сортировку. |
int |
getScrollableBlockIncrement |
Возвращает visibleRect.height или visibleRect.width в зависимости от ориентации таблицы. |
boolean |
getScrollableTracksViewportHeight() |
Возвращает false, указывающее, что высота области просмотра не определяет высоту таблицы, если только getFillsViewportHeight не равно true и предпочтительная высота таблицы не меньше высоты области просмотра. |
boolean |
getScrollableTracksViewportWidth() |
Возвращает false, если для autoResizeMode установлено значение AUTO_RESIZE_OFF, что означает, что ширина области просмотра не определяет ширину таблицы. |
int |
getScrollableUnitIncrement |
Возвращает величину прокрутки в пикселях, при которой полностью отображается одна новая строка или столбец (в зависимости от ориентации). |
int |
getSelectedColumn() |
Возвращает индекс первого выделенного столбца или -1, если столбцы не выделены. |
int |
getSelectedColumnCount() |
Возвращает количество выделенных столбцов. |
int[] |
getSelectedColumns() |
Возвращает индексы всех выделенных столбцов. |
int |
getSelectedRow() |
Возвращает индекс первой выделенной строки или -1, если строки не выделены. |
int |
getSelectedRowCount() |
Возвращает количество выделенных строк. |
int[] |
getSelectedRows() |
Возвращает индексы всех выделенных строк. |
Color |
getSelectionBackground() |
Возвращает цвет фона выделенных ячеек. |
Color |
getSelectionForeground() |
Возвращает цвет переднего плана выделенных ячеек. |
ListSelectionModel |
getSelectionModel() |
Возвращает ListSelectionModel, используемую для хранения состояния выделения строк. |
boolean |
getShowHorizontalLines() |
Возвращает true, если таблица отображает горизонтальные линии между ячейками, и false в противном случае. |
boolean |
getShowVerticalLines() |
Возвращает true, если таблица отображает вертикальные линии между ячейками, и false в противном случае. |
boolean |
getSurrendersFocusOnKeystroke() |
Возвращает true, если редактор должен получать фокус при активации в результате нажатия клавиш. |
JTableHeader |
getTableHeader() |
Возвращает tableHeader, используемый этим JTable. |
String |
getToolTipText |
Переопределяет метод getToolTipText класса JComponent, чтобы можно было использовать подсказки средства отображения, если для него задан текст. |
TableUI |
getUI() |
Возвращает объект L&F, отображающий этот компонент. |
String |
getUIClassID() |
Возвращает суффикс, используемый для формирования имени класса L&F, отображающего этот компонент. |
boolean |
getUpdateSelectionOnSort() |
Возвращает true, если после сортировки следует обновить выделение. |
Object |
getValueAt |
Возвращает значение ячейки в позициях row и column. |
protected void |
initializeLocalVars() |
Инициализирует свойства таблицы значениями по умолчанию. |
boolean |
isCellEditable |
Возвращает true, если ячейка в позициях row и column доступна для редактирования. |
boolean |
isCellSelected |
Возвращает true, если указанные индексы находятся в допустимом диапазоне строк и столбцов, а ячейка в указанной позиции выделена. |
boolean |
isColumnSelected |
Возвращает true, если указанный индекс находится в допустимом диапазоне столбцов и столбец с этим индексом выделен. |
boolean |
isEditing() |
Возвращает true, если ячейка редактируется. |
boolean |
isRowSelected |
Возвращает true, если указанный индекс находится в допустимом диапазоне строк и строка с этим индексом выделена. |
void |
moveColumn |
Перемещает столбец column на позицию, занимаемую в данный момент в представлении столбцом targetColumn. |
protected String |
paramString() |
Возвращает строковое представление этой таблицы. |
Component |
prepareEditor |
Подготавливает редактор, запрашивая у модели данных значение и состояние выделения ячейки в позициях row, column. |
Component |
prepareRenderer |
Подготавливает средство отображения, запрашивая у модели данных значение и состояние выделения ячейки в позициях row, column. |
boolean |
print() |
Вспомогательный метод, который отображает диалог печати, а затем печатает эту JTable в режиме PrintMode.FIT_WIDTH без текста верхнего и нижнего колонтитулов. |
boolean |
print |
Вспомогательный метод, который отображает диалог печати, а затем печатает эту JTable в указанном режиме печати без текста верхнего и нижнего колонтитулов. |
boolean |
print |
Вспомогательный метод, который отображает диалог печати, а затем печатает эту JTable в указанном режиме печати с заданным текстом верхнего и нижнего колонтитулов. |
boolean |
print |
Печатает эту таблицу так, как указано в полнофункциональном методе print, используя принтер по умолчанию в качестве службы печати. |
boolean |
print |
Печатает эту JTable. |
void |
removeColumn |
Удаляет aColumn из массива столбцов этого JTable. |
void |
removeColumnSelectionInterval |
Снимает выделение со столбцов с index0 по index1 включительно. |
void |
removeEditor() |
Удаляет объект редактора и освобождает пространство, которое он занимал для отображения ячеек. |
void |
removeNotify() |
Вызывает метод unconfigureEnclosingScrollPane. |
void |
removeRowSelectionInterval |
Снимает выделение со строк с index0 по index1 включительно. |
protected void |
resizeAndRepaint() |
Эквивалентно вызову revalidate, за которым следует repaint. |
int |
rowAtPoint |
Возвращает индекс строки, в которой находится point, или -1, если результат не входит в диапазон [0, getRowCount()-1]. |
void |
selectAll() |
Выделяет все строки, столбцы и ячейки таблицы. |
void |
setAutoCreateColumnsFromModel |
Устанавливает флаг autoCreateColumnsFromModel этой таблицы. |
void |
setAutoCreateRowSorter |
Указывает, следует ли создавать RowSorter для таблицы при каждом изменении ее модели. |
void |
setAutoResizeMode |
Устанавливает режим автоматического изменения размера таблицы при ее изменении. |
void |
setCellEditor |
Устанавливает активный редактор ячеек. |
void |
setCellSelectionEnabled |
Устанавливает, может ли в этой таблице одновременно существовать выделение столбца и выделение строки. |
void |
setColumnModel |
Устанавливает для этой таблицы модель столбцов columnModel и регистрирует получение уведомлений от новой модели столбцов. |
void |
setColumnSelectionAllowed |
Устанавливает, можно ли выделять столбцы в этой модели. |
void |
setColumnSelectionInterval |
Выделяет столбцы с index0 по index1 включительно. |
void |
setDefaultEditor |
Задает редактор ячеек по умолчанию, используемый, если в TableColumn не задан редактор. |
void |
setDefaultRenderer |
Задает средство отображения ячеек по умолчанию, используемое, если в TableColumn не задано средство отображения. |
void |
setDragEnabled |
Включает или отключает автоматическую обработку перетаскивания. |
final void |
setDropMode |
Устанавливает режим сброса для этого компонента. |
void |
setEditingColumn |
Устанавливает переменную editingColumn. |
void |
setEditingRow |
Устанавливает переменную editingRow. |
void |
setFillsViewportHeight |
Устанавливает, следует ли всегда увеличивать таблицу до размера, достаточного для заполнения высоты внешней области просмотра. |
void |
setGridColor |
Устанавливает цвет линий сетки в gridColor и перерисовывает таблицу. |
void |
setIntercellSpacing |
Устанавливает rowMargin и columnMargin — высоту и ширину пространства между ячейками — равными intercellSpacing. |
void |
setModel |
Устанавливает для этой таблицы модель данных dataModel и регистрирует получение уведомлений от новой модели данных. |
void |
setPreferredScrollableViewportSize |
Устанавливает предпочтительный размер области просмотра для этой таблицы. |
void |
setRowHeight |
Устанавливает высоту всех ячеек в rowHeight пикселей, проверяет допустимость размеров и перерисовывает компонент. |
void |
setRowHeight |
Устанавливает высоту для row равной rowHeight, проверяет допустимость размеров и перерисовывает компонент. |
void |
setRowMargin |
Устанавливает размер пустого пространства между ячейками в соседних строках. |
void |
setRowSelectionAllowed |
Устанавливает, можно ли выделять строки в этой модели. |
void |
setRowSelectionInterval |
Выделяет строки с index0 по index1 включительно. |
void |
setRowSorter |
Устанавливает RowSorter. |
void |
setSelectionBackground |
Устанавливает цвет фона выделенных ячеек. |
void |
setSelectionForeground |
Устанавливает цвет переднего плана выделенных ячеек. |
void |
setSelectionMode |
Устанавливает режим выделения таблицы, позволяющий выполнять только одиночное выделение, выделение одного непрерывного интервала или выделение нескольких интервалов. |
void |
setSelectionModel |
Устанавливает для этой таблицы модель выделения строк selectionModel и регистрирует получение уведомлений от новой модели выделения. |
void |
setShowGrid |
Устанавливает, должна ли таблица отображать линии сетки вокруг ячеек. |
void |
setShowHorizontalLines |
Устанавливает, должна ли таблица отображать горизонтальные линии между ячейками. |
void |
setShowVerticalLines |
Устанавливает, должна ли таблица отображать вертикальные линии между ячейками. |
void |
setSurrendersFocusOnKeystroke |
Устанавливает, должны ли редакторы в этой JTable получать фокус клавиатуры при активации в результате передачи JTable событий клавиатуры для ячейки. |
void |
setTableHeader |
Устанавливает tableHeader, работающий с этим JTable, равным newHeader. |
void |
setUI |
Устанавливает объект L&F, отображающий этот компонент, и перерисовывает его. |
void |
setUpdateSelectionOnSort |
Указывает, следует ли обновлять выделение после сортировки. |
void |
setValueAt |
Устанавливает значение ячейки в модели таблицы в позициях row и column. |
void |
sizeColumnsToFit |
Устарело. Начиная с Swing версии 1.0.3 заменено на doLayout(). |
void |
sizeColumnsToFit |
Устарело начиная с платформы Java 2 версии 1.4. |
void |
sorterChanged |
RowSorterListener уведомление о том, что RowSorter каким-либо образом изменился. |
void |
tableChanged |
Вызывается, когда TableModel этой таблицы создаёт TableModelEvent. |
protected void |
unconfigureEnclosingScrollPane() |
Отменяет эффект configureEnclosingScrollPane, заменяя columnHeaderView окружающей панели прокрутки на null. |
void |
updateUI() |
Уведомление от UIManager об изменении L&F. |
void |
valueChanged |
Вызывается при изменении выбора строк — перерисовывает компонент, чтобы отобразить новый выбор. |
Методы, объявленные в классе JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, processKeyBinding, 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
Методы, объявленные в классе 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
Методы, объявленные в классе 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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Подробное описание полей
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
TableModel таблицы.columnModel
protected TableColumnModel columnModel
TableColumnModel таблицы.selectionModel
protected ListSelectionModel selectionModel
ListSelectionModel таблицы, используемая для отслеживания выбранных строк.tableHeader
protected JTableHeader tableHeader
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
TableModel для создания набора столбцов по умолчанию.preferredViewportSize
protected Dimension preferredViewportSize
Scrollable для определения начальной видимой области.rowSelectionAllowed
protected boolean rowSelectionAllowed
cellSelectionEnabled
protected boolean cellSelectionEnabled
rowSelectionAllowed и свойство columnSelectionAllowed интерфейса columnModel. Или используйте метод getCellSelectionEnabled.editorComp
protected transient Component editorComp
Component, выполняющий это редактирование.cellEditor
protected transient TableCellEditor cellEditor
null, если в данный момент таблица не находится в режиме редактирования.editingColumn
protected transient int editingColumn
editingRow
protected transient int editingRow
defaultRenderersByColumnClass
protected transient Hashtable<Object,Object> defaultRenderersByColumnClass
getColumnClass интерфейса TableModel.defaultEditorsByColumnClass
protected transient Hashtable<Object,Object> defaultEditorsByColumnClass
getColumnClass интерфейса TableModel.selectionForeground
protected Color selectionForeground
selectionBackground
protected Color selectionBackground
Подробное описание конструкторов
JTable
public JTable()
JTable по умолчанию, инициализированную моделью данных, моделью столбцов и моделью выделения по умолчанию.- См. также:
JTable
public JTable(TableModel dm)
JTable, инициализированную с dm в качестве модели данных, а также моделью столбцов и моделью выделения по умолчанию.- Параметры:
-
dm— модель данных таблицы - См. также:
JTable
public JTable(TableModel dm, TableColumnModel cm)
JTable, инициализированную с dm в качестве модели данных, с cm в качестве модели столбцов и с моделью выделения по умолчанию.- Параметры:
-
dm— модель данных таблицы -
cm— модель столбцов таблицы - См. также:
JTable
public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
JTable, инициализированную с dm в качестве модели данных, с cm в качестве модели столбцов и с sm в качестве модели выделения. Если любой из параметров равен null, этот метод инициализирует таблицу соответствующей моделью по умолчанию. Флаг autoCreateColumnsFromModel устанавливается в false, если cm не равен null; в противном случае он устанавливается в true, а модель столбцов заполняется подходящими TableColumns для столбцов в dm.- Параметры:
-
dm— модель данных таблицы -
cm— модель столбцов таблицы -
sm— модель выбора строк таблицы - См. также:
JTable
public JTable(int numRows, int numColumns)
JTable с numRows и numColumns пустых ячеек, используя DefaultTableModel. Столбцы будут иметь имена вида «A», «B», «C» и т. д.- Параметры:
-
numRows— количество строк в таблице -
numColumns— количество столбцов в таблице - См. также:
JTable
public JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)
JTable для отображения значений из Vector типа Vectors, rowData, с именами столбцов, columnNames. Элементы Vectors, содержащиеся в rowData, должны содержать значения соответствующей строки. Иными словами, значение ячейки в строке 1, столбце 5 можно получить следующим кодом: ((Vector)rowData.elementAt(1)).elementAt(5);
- Параметры:
-
rowData— данные для новой таблицы -
columnNames— имена столбцов
JTable
public JTable(Object[][] rowData, Object[] columnNames)
JTable для отображения значений двумерного массива, rowData, с именами столбцов, columnNames. rowData — это массив строк, поэтому значение ячейки в строке 1, столбце 5 можно получить следующим кодом: rowData[1][5];
Длина всех строк должна совпадать с длиной columnNames.
- Параметры:
-
rowData— данные для новой таблицы -
columnNames— имена столбцов
Подробное описание методов
addNotify
public void addNotify()
configureEnclosingScrollPane.- Переопределяет:
-
addNotifyв классеJComponent - См. также:
configureEnclosingScrollPane
protected void configureEnclosingScrollPane()
JTable является viewportView охватывающего JScrollPane (что обычно и происходит), настройте этот ScrollPane, в частности установив tableHeader таблицы в качестве columnHeaderView панели прокрутки. Когда JTable обычным способом добавляется в JScrollPane с помощью new JScrollPane(myTable), addNotify вызывается в JTable (при добавлении таблицы в область просмотра). Метод addNotify класса JTable вызывает этот метод, который объявлен как protected, чтобы подкласс мог переопределить эту стандартную процедуру установки.- См. также:
removeNotify
public void removeNotify()
unconfigureEnclosingScrollPane.- Переопределяет:
-
removeNotifyв классеJComponent - См. также:
unconfigureEnclosingScrollPane
protected void unconfigureEnclosingScrollPane()
configureEnclosingScrollPane, заменяя columnHeaderView охватывающей панели прокрутки на null. Метод removeNotify класса JTable вызывает этот метод, который объявлен как protected, чтобы подкласс мог переопределить эту стандартную процедуру удаления.- Начиная с версии:
- 1.3
- См. также:
createScrollPaneForTable
@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
new JScrollPane(aTable).new JScrollPane(aTable).- Параметры:
-
aTable—JTableдля панели прокрутки - Возвращает:
JScrollPane, созданную с помощьюaTable
setTableHeader
@BeanProperty(description="The JTableHeader instance which renders the column headers.") public void setTableHeader(JTableHeader tableHeader)
tableHeader, работающий с этим JTable, в значение newHeader. Значение tableHeader для null допустимо.- Параметры:
-
tableHeader— новый заголовок таблицы - См. также:
getTableHeader
public JTableHeader getTableHeader()
tableHeader, используемый этим JTable.- Возвращает:
tableHeader, используемый этой таблицей- См. также:
setRowHeight
@BeanProperty(description="The height of the specified row.") public void setRowHeight(int rowHeight)
rowHeight, повторно проверяет компоновку и перерисовывает таблицу. Высота ячеек будет равна высоте строки за вычетом поля строки.- Параметры:
-
rowHeight— новая высота строки - Вызывает исключение:
-
IllegalArgumentException— еслиrowHeightменьше 1 - См. также:
getRowHeight
public int getRowHeight()
- Возвращает:
- высоту строки таблицы в пикселях
- См. также:
setRowHeight
@BeanProperty(description="The height in pixels of the cells in <code>row</code>") public void setRowHeight(int row, int rowHeight)
row равной rowHeight, повторно проверяет компоновку и перерисовывает таблицу. Высота ячеек в этой строке будет равна высоте строки за вычетом поля строки.- Параметры:
-
row— строка, высота которой изменяется -
rowHeight— новая высота строки в пикселях - Вызывает исключение:
-
IllegalArgumentException— еслиrowHeightменьше 1 - Начиная с версии:
- 1.3
getRowHeight
public int getRowHeight(int row)
row в пикселях.- Параметры:
-
row— строка, высоту которой нужно вернуть - Возвращает:
- высоту ячеек в строке в пикселях
- Начиная с версии:
- 1.3
setRowMargin
@BeanProperty(description="The amount of space between cells.") public void setRowMargin(int rowMargin)
- Параметры:
-
rowMargin— расстояние между ячейками строки в пикселях - См. также:
getRowMargin
public int getRowMargin()
getIntercellSpacing().height.- Возвращает:
- расстояние между ячейками строки в пикселях
- См. также:
setIntercellSpacing
@BeanProperty(bound=false, description="The spacing between the cells, drawn in the background color of the JTable.") public void setIntercellSpacing(Dimension intercellSpacing)
rowMargin и columnMargin — высоту и ширину пространства между ячейками — равными intercellSpacing.- Параметры:
-
intercellSpacing—Dimension, задающий новую ширину и высоту промежутков между ячейками - См. также:
getIntercellSpacing
public Dimension getIntercellSpacing()
- Возвращает:
- горизонтальное и вертикальное расстояние между ячейками
- См. также:
setGridColor
@BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
gridColor в качестве цвета линий сетки и обновляет отображение. Цвет по умолчанию зависит от оформления.- Параметры:
-
gridColor— новый цвет линий сетки - Вызывает исключение:
-
IllegalArgumentException— еслиgridColorравенnull - См. также:
getGridColor
public Color getGridColor()
- Возвращает:
- цвет линий сетки
- См. также:
setShowGrid
@BeanProperty(description="The color used to draw the grid lines.") public void setShowGrid(boolean showGrid)
showGrid имеет значение true, линии отображаются; если false — нет. Метод getShowGrid отсутствует, поскольку это состояние хранится в двух переменных — showHorizontalLines и showVerticalLines, — каждую из которых можно запросить отдельно.- Параметры:
-
showGrid— true, если представление таблицы должно отображать линии сетки - См. также:
setShowHorizontalLines
@BeanProperty(description="Whether horizontal lines should be drawn in between the cells.") public void setShowHorizontalLines(boolean showHorizontalLines)
showHorizontalLines имеет значение true, линии отображаются; если false — нет.- Параметры:
-
showHorizontalLines— true, если представление таблицы должно отображать горизонтальные линии - См. также:
setShowVerticalLines
@BeanProperty(description="Whether vertical lines should be drawn in between the cells.") public void setShowVerticalLines(boolean showVerticalLines)
showVerticalLines имеет значение true, линии отображаются; если false — нет.- Параметры:
-
showVerticalLines— true, если представление таблицы должно отображать вертикальные линии - См. также:
getShowHorizontalLines
public boolean getShowHorizontalLines()
- Возвращает:
- true, если таблица отображает горизонтальные линии между ячейками, и false в противном случае
- См. также:
getShowVerticalLines
public boolean getShowVerticalLines()
- Возвращает:
- true, если таблица отображает вертикальные линии между ячейками, и false в противном случае
- См. также:
setAutoResizeMode
@BeanProperty(enumerationValues={"JTable.AUTO_RESIZE_OFF","JTable.AUTO_RESIZE_NEXT_COLUMN","JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS","JTable.AUTO_RESIZE_LAST_COLUMN","JTable.AUTO_RESIZE_ALL_COLUMNS"}, description="Whether the columns should adjust themselves automatically.") public void setAutoResizeMode(int mode) doLayout().- Параметры:
-
mode— одно из 5 допустимых значений: AUTO_RESIZE_OFF, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_SUBSEQUENT_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_ALL_COLUMNS - См. также:
getAutoResizeMode
public int getAutoResizeMode()
- Возвращает:
- режим autoResizeMode таблицы
- См. также:
setAutoCreateColumnsFromModel
@BeanProperty(description="Automatically populates the columnModel when a new TableModel is submitted.") public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
autoCreateColumnsFromModel этой таблицы. Если значение autoCreateColumnsFromModel изменяется с false на true, этот метод вызывает createDefaultColumnsFromModel.- Параметры:
-
autoCreateColumnsFromModel— true, еслиJTableдолжен автоматически создавать столбцы - См. также:
getAutoCreateColumnsFromModel
public boolean getAutoCreateColumnsFromModel()
setModel удалит все существующие столбцы и создаст новые на основе новой модели. Кроме того, если событие в уведомлении tableChanged указывает, что изменилась вся таблица, столбцы будут созданы заново. По умолчанию используется значение true.- Возвращает:
- значение autoCreateColumnsFromModel таблицы
- См. также:
createDefaultColumnsFromModel
public void createDefaultColumnsFromModel()
getColumnCount, определенный в интерфейсе TableModel. Перед созданием новых столбцов на основе сведений модели удаляет все существующие столбцы.
- См. также:
setDefaultRenderer
public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
TableColumn не задано средство отображения. Если средство отображения равно null, удаляет средство отображения по умолчанию для этого класса столбца.- Параметры:
-
columnClass- установить средство отображения ячеек по умолчанию для этого columnClass -
renderer- средство отображения ячеек по умолчанию для этого columnClass - См. также:
getDefaultRenderer
public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
TableColumn не задано средство отображения. При отображении ячеек средство отображения извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого columnClass нет записи, метод возвращает запись для наиболее конкретного суперкласса. JTable устанавливает записи для Object, Number и Boolean, которые можно изменить или заменить.- Параметры:
-
columnClass- вернуть средство отображения ячеек по умолчанию для этого columnClass - Возвращает:
- средство отображения для этого columnClass
- См. также:
setDefaultEditor
public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
TableColumn не задан редактор. Если редактирование таблицы или отдельного столбца таблицы не требуется, используйте метод isCellEditable интерфейса TableModel, чтобы гарантировать, что этот JTable не запустит редактор в этих столбцах. Если редактор равен null, удаляет редактор по умолчанию для этого класса столбца.- Параметры:
-
columnClass- установить редактор ячеек по умолчанию для этого columnClass -
editor- редактор ячеек по умолчанию для этого columnClass - См. также:
getDefaultEditor
public TableCellEditor getDefaultEditor(Class<?> columnClass)
TableColumn не задан редактор. При редактировании ячеек редактор извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого columnClass нет записи, метод возвращает запись для наиболее конкретного суперкласса. JTable устанавливает записи для Object, Number и Boolean, которые можно изменить или заменить.- Параметры:
-
columnClass- вернуть редактор ячеек по умолчанию для этого columnClass - Возвращает:
- редактор ячеек по умолчанию для этого columnClass
- См. также:
setDragEnabled
@BeanProperty(bound=false, description="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b)
true, а TransferHandler таблицы должен быть non-null. Значение свойства dragEnabled по умолчанию — false. Обязанность учитывать это свойство и распознавать жест перетаскивания пользователя лежит на реализации оформления и, в частности, на TableUI таблицы. Когда автоматическая обработка перетаскивания включена, большинство оформлений (включая те, которые являются подклассами BasicLookAndFeel) начинают операцию перетаскивания, когда пользователь нажимает кнопку мыши над элементом (в режиме одиночного выбора) или выделением (в других режимах выбора), а затем перемещает мышь на несколько пикселей. Поэтому установка для этого свойства значения true может незаметно повлиять на поведение выбора.
Если используется оформление, игнорирующее это свойство, операцию перетаскивания все равно можно начать, вызвав exportAsDrag для TransferHandler таблицы.
- Параметры:
-
b- включить ли автоматическую обработку перетаскивания - Вызывает исключение:
-
HeadlessException- еслиbравноtrueиGraphicsEnvironment.isHeadless()возвращаетtrue - Начиная с:
- 1.4
- См. также:
getDragEnabled
public boolean getDragEnabled()
- Возвращает:
- значение свойства
dragEnabled - Начиная с:
- 1.4
- См. также:
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, принимающий данные при перетаскивании.
- Параметры:
-
dropMode- используемый режим сброса - Вызывает исключение:
-
IllegalArgumentException- если режим сброса не поддерживается илиnull - Начиная с:
- 1.6
- См. также:
getDropMode
public final DropMode getDropMode()
- Возвращает:
- режим сброса для этого компонента
- Начиная с:
- 1.6
- См. также:
getDropLocation
@BeanProperty(bound=false) public final JTable.DropLocation getDropLocation()
null, если в данный момент местоположение не должно отображаться. Этот метод не предназначен для запроса местоположения сброса из TransferHandler, поскольку местоположение сброса задается только после того, как TransferHandler's canImport вернул результат и разрешил отображение местоположения.
При изменении этого свойства компонент генерирует событие изменения свойства с именем "dropLocation".
- Возвращает:
- местоположение сброса
- Начиная с:
- 1.6
- См. также:
setAutoCreateRowSorter
@BeanProperty(preferred=true, description="Whether or not to turn on sorting by default.") public void setAutoCreateRowSorter(boolean autoCreateRowSorter)
RowSorter для таблицы при каждом изменении ее модели. При вызове setAutoCreateRowSorter(true) немедленно создается
TableRowSorter и устанавливается для таблицы. Пока свойство autoCreateRowSorter имеет значение true, при каждом изменении модели создается новый
TableRowSorter и назначается сортировщиком строк таблицы. Значение свойства autoCreateRowSorter по умолчанию — false.
- Параметры:
-
autoCreateRowSorter- следует ли автоматически создаватьRowSorter - Начиная с:
- 1.6
- См. также:
getAutoCreateRowSorter
public boolean getAutoCreateRowSorter()
true, если при каждом изменении модели следует создавать новый RowSorter и устанавливать его в качестве сортировщика таблицы; в противном случае возвращает false.- Возвращает:
- true, если при изменении модели следует создавать
RowSorter - Начиная с:
- 1.6
setUpdateSelectionOnSort
@BeanProperty(expert=true, description="Whether or not to update the selection on sorting") public void setUpdateSelectionOnSort(boolean update)
- Параметры:
-
update- обновлять ли выделение при сортировке - Начиная с:
- 1.6
getUpdateSelectionOnSort
public boolean getUpdateSelectionOnSort()
- Возвращает:
- следует ли обновлять выделение при сортировке
- Начиная с:
- 1.6
setRowSorter
@BeanProperty(description="The table's RowSorter") public void setRowSorter(RowSorter<? extends TableModel> sorter)
RowSorter. RowSorter используется для сортировки и фильтрации JTable. Этот метод очищает выделение и сбрасывает все переменные высоты строк.
При необходимости этот метод генерирует PropertyChangeEvent с именем свойства "rowSorter". Для обратной совместимости этот метод дополнительно генерирует событие с именем свойства "sorter".
Если базовая модель RowSorter отличается от модели этого JTable, результатом будет неопределенное поведение.
- Параметры:
-
sorter-RowSorter;nullотключает сортировку - Начиная с:
- 1.6
- См. также:
getRowSorter
public RowSorter<? extends TableModel> getRowSorter()
- Возвращает:
- объект, отвечающий за сортировку
- Начиная с:
- 1.6
setSelectionMode
@BeanProperty(enumerationValues={"ListSelectionModel.SINGLE_SELECTION","ListSelectionModel.SINGLE_INTERVAL_SELECTION","ListSelectionModel.MULTIPLE_INTERVAL_SELECTION"}, description="The selection mode used by the row and column selection models.") public void setSelectionMode(int selectionMode) Примечание: JTable предоставляет все методы для работы с выделением столбцов и строк. При установке параметров, например setSelectionMode, он не только обновляет режим модели выделения строк, но и задает аналогичные значения в модели выделения columnModel. Если требуется, чтобы модели выделения строк и столбцов работали в разных режимах, задайте режимы непосредственно для обеих моделей.
Для JTable в моделях выделения строк и столбцов по умолчанию используется DefaultListSelectionModel, поэтому JTable работает так же, как JList. Подробные сведения о режимах см. в методе setSelectionMode класса JList.
- Параметры:
-
selectionMode- режим, используемый моделями выделения строк и столбцов - См. также:
setRowSelectionAllowed
@BeanProperty(visualUpdate=true, description="If true, an entire row is selected for each selected cell.") public void setRowSelectionAllowed(boolean rowSelectionAllowed)
- Параметры:
-
rowSelectionAllowed- true, если эта модель допускает выделение строк - См. также:
getRowSelectionAllowed
public boolean getRowSelectionAllowed()
- Возвращает:
- true, если строки можно выделять; в противном случае false
- См. также:
setColumnSelectionAllowed
@BeanProperty(visualUpdate=true, description="If true, an entire column is selected for each selected cell.") public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
- Параметры:
-
columnSelectionAllowed- true, если эта модель допускает выделение столбцов - См. также:
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()
- Возвращает:
- true, если столбцы можно выделять; в противном случае false
- См. также:
setCellSelectionEnabled
@BeanProperty(visualUpdate=true, description="Select a rectangular region of cells rather than rows or columns.") public void setCellSelectionEnabled(boolean cellSelectionEnabled)
isCellSelected, чтобы изменить такое поведение по умолчанию. Этот метод эквивалентен установке для свойств rowSelectionAllowed и columnSelectionAllowed объекта columnModel переданного значения.- Параметры:
-
cellSelectionEnabled- true, если разрешено одновременное выделение строк и столбцов - См. также:
getCellSelectionEnabled
public boolean getCellSelectionEnabled()
getRowSelectionAllowed() &&
getColumnSelectionAllowed().- Возвращает:
- true, если включены обе модели выделения строк и столбцов
- См. также:
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
@BeanProperty(bound=false) public int getSelectedRow()
- Возвращает:
- индекс первой выделенной строки
getSelectedColumn
@BeanProperty(bound=false) public int getSelectedColumn()
- Возвращает:
- индекс первого выделенного столбца
getSelectedRows
@BeanProperty(bound=false) public int[] getSelectedRows()
- Возвращает:
- массив целых чисел, содержащий индексы всех выделенных строк, или пустой массив, если ни одна строка не выделена
- См. также:
getSelectedColumns
@BeanProperty(bound=false) public int[] getSelectedColumns()
- Возвращает:
- массив целых чисел, содержащий индексы всех выделенных столбцов, или пустой массив, если ни один столбец не выделен
- См. также:
getSelectedRowCount
@BeanProperty(bound=false) public int getSelectedRowCount()
- Возвращает:
- количество выделенных строк; 0, если строки не выделены
getSelectedColumnCount
@BeanProperty(bound=false) public int getSelectedColumnCount()
- Возвращает:
- количество выделенных столбцов; 0, если столбцы не выделены
isRowSelected
public boolean isRowSelected(int row)
- Параметры:
-
row- строка в модели строк - Возвращает:
- true, если
rowявляется допустимым индексом и строка с этим индексом выделена (0 — индекс первой строки)
isColumnSelected
public boolean isColumnSelected(int column)
- Параметры:
-
column- столбец в модели столбцов - Возвращает:
- true, если
columnявляется допустимым индексом и столбец с этим индексом выделен (0 — индекс первого столбца)
isCellSelected
public boolean isCellSelected(int row, int column)
- Параметры:
-
row- проверяемая строка -
column- проверяемый столбец - Возвращает:
- true, если
rowиcolumnявляются допустимыми индексами и ячейка с индексом(row, column)выделена; индекс первой строки и первого столбца равен 0
changeSelection
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
toggle и extend. Большинство изменений выделения, вызванных событиями клавиатуры или мыши, полученными пользовательским интерфейсом, проходит через этот метод, чтобы подкласс мог переопределить поведение. Некоторым пользовательским интерфейсам могут потребоваться дополнительные возможности, отсутствующие в этом методе, например управление ведущим элементом при несмежном выделении; в таких случаях этот метод может не вызываться для некоторых изменений выделения. В этой реализации используются следующие соглашения:
-
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
@BeanProperty(description="A default foreground color for selected cells.") public void setSelectionForeground(Color selectionForeground)
Значение этого свойства по умолчанию определяется реализацией оформления.
Это связанное свойство JavaBeans.
- Параметры:
-
selectionForeground- объектColor, используемый в качестве цвета переднего плана для выделенных элементов списка - См. также:
getSelectionBackground
public Color getSelectionBackground()
- Возвращает:
Color, используемый в качестве фона выделенных элементов списка- См. также:
setSelectionBackground
@BeanProperty(description="A default background color for selected cells.") public void setSelectionBackground(Color selectionBackground)
Значение этого свойства по умолчанию определяется реализацией оформления.
Это связанное свойство JavaBeans.
- Параметры:
-
selectionBackground—Color, используемый в качестве фона выделенных ячеек - См. также:
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
public int convertColumnIndexToView(int modelColumnIndex)
modelColumnIndex, в индекс столбца в представлении. Возвращает индекс соответствующего столбца в представлении; возвращает -1, если этот столбец не отображается. Если modelColumnIndex меньше нуля, возвращает modelColumnIndex.- Параметры:
-
modelColumnIndex— индекс столбца в модели - Возвращает:
- индекс соответствующего столбца в представлении
- См. также:
convertRowIndexToView
public int convertRowIndexToView(int modelRowIndex)
TableModel в индекс строки в представлении. Если содержимое модели не отсортировано, индексы модели и представления совпадают.- Параметры:
-
modelRowIndex— индекс строки в модели - Возвращает:
- индекс соответствующей строки в представлении или -1, если строка не видна
- Вызывает исключение:
-
IndexOutOfBoundsException— если сортировка включена и передан индекс за пределами количества строк вTableModel - Начиная с версии:
- 1.6
- См. также:
convertRowIndexToModel
public int convertRowIndexToModel(int viewRowIndex)
TableModel. Если содержимое модели не отсортировано, индексы модели и представления совпадают.- Параметры:
-
viewRowIndex— индекс строки в представлении - Возвращает:
- индекс соответствующей строки в модели
- Вызывает исключение:
-
IndexOutOfBoundsException— если сортировка включена и передан индекс за пределами диапазонаJTable, определяемого методомgetRowCount - Начиная с версии:
- 1.6
- См. также:
getRowCount
@BeanProperty(bound=false) public int getRowCount()
JTable при неограниченном пространстве. Если задан RowSorter с фильтром, количество возвращаемых строк может отличаться от количества строк в базовой TableModel.- Возвращает:
- количество строк, отображаемых в
JTable - См. также:
getColumnCount
@BeanProperty(bound=false) public int getColumnCount()
- Возвращает:
- количество столбцов в таблице
- См. также:
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— столбец ячейки, значение которой нужно изменить - См. также:
isCellEditable
public boolean isCellEditable(int row, int column)
row и столбце column доступна для редактирования. В противном случае вызов setValueAt для этой ячейки не даст результата. Примечание: столбец задаётся в порядке отображения представления таблицы, а не в порядке столбцов TableModel. Это важное различие, поскольку при перестановке пользователем столбцов таблицы столбец с заданным индексом в представлении изменится. При этом действия пользователя никак не влияют на порядок столбцов модели.
- Параметры:
-
row— строка, значение которой требуется получить -
column— столбец, значение которого требуется получить - Возвращает:
- true, если ячейка доступна для редактирования
- См. также:
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
public void removeColumn(TableColumn aColumn)
aColumn из массива столбцов этого JTable. Примечание: этот метод не удаляет столбец данных из модели; он лишь удаляет TableColumn, отвечавший за его отображение.- Параметры:
-
aColumn— удаляемый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
public int rowAtPoint(Point point)
point, или -1, если результат не входит в диапазон [0, getRowCount()-1].- Параметры:
-
point— интересующая позиция - Возвращает:
- индекс строки, в которую попадает
point, или -1, если результат не входит в диапазон [0,getRowCount()-1] - См. также:
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 - См. также:
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 — закрытый интерфейс, позволяющий алгоритму изменять элементы любой структуры данных, содержащей набор элементов с размером, предпочтительным размером, максимальным и минимальным размерами. Распределение дельты
Обзор
Назовём «DELTA» разницу между целевым размером и суммой предпочтительных размеров элементов в r. Индивидуальные размеры вычисляются путём прибавления доли DELTA к исходным предпочтительным размерам; эта доля зависит от того, насколько каждый предпочтительный размер удалён от соответствующей предельной границы (минимальной или максимальной).
Определение
Обозначим индивидуальные ограничения как min[i], max[i] и pref[i].
Обозначим их суммы соответственно как MIN, MAX и PREF.
Новый размер каждого элемента вычисляется по формуле:
size[i] = pref[i] + delta[i]
где каждая индивидуальная величина delta[i] вычисляется следующим образом: Если (DELTA < 0), выполняется уменьшение размера:
DELTA
delta[i] = ------------ * (pref[i] - min[i])
(PREF - MIN)
Если (DELTA > 0), выполняется увеличение размера:
DELTA
delta[i] = ------------ * (max[i] - pref[i])
(MAX - PREF)
В результате общий размер изменяется на ту же долю k в направлении общей минимальной или максимальной величины; эта доля гарантирует размещение требуемого пространства DELTA.
Подробности
Наивное вычисление приведённых здесь формул привело бы к накоплению ошибок округления из-за выполнения операции с ограниченной точностью (с использованием int). Чтобы избежать этого, указанный выше множитель пересчитывается на каждом шаге с учётом ошибок округления предыдущих итераций. В результате алгоритм формирует набор целых чисел, сумма которых точно равна заданной величине targetSize, равномерно распределяя ошибки округления между указанными элементами.
Достижение границ MAX и MIN
Если targetSize выходит за пределы диапазона [MIN, MAX], алгоритм устанавливает для всех размеров соответствующие предельные значения (максимальные или минимальные).
sizeColumnsToFit
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
doLayout().- Параметры:
-
lastColumnOnly— определяет, следует ли изменять размер только последнего столбца - См. также:
sizeColumnsToFit
public void sizeColumnsToFit(int resizingColumn)
doLayout().- Параметры:
-
resizingColumn— столбец, изменение размера которого потребовало этой корректировки, или -1, если такого столбца нет - См. также:
getToolTipText
public String getToolTipText(MouseEvent event)
getToolTipText класса JComponent, чтобы можно было использовать подсказки средства отображения, если для него задан текст. Примечание: Чтобы JTable правильно отображал подсказки средств отображения, JTable должен быть зарегистрированным компонентом в ToolTipManager. Это выполняется автоматически в initializeLocalVars, однако если позднее JTable получает указание setToolTipText(null), компонент таблицы отменяет регистрацию и подсказки средств отображения больше не показываются.
- Переопределено:
-
getToolTipTextв классеJComponent - Параметры:
-
event—MouseEvent, вызвавшее отображениеToolTip - Возвращает:
- строку, содержащую текст подсказки
- См. также:
setSurrendersFocusOnKeystroke
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
- Параметры:
-
surrendersFocusOnKeystroke— true, если редактор должен получить фокус при активации нажатием клавиш - Начиная с версии:
- 1.4
- См. также:
getSurrendersFocusOnKeystroke
public boolean getSurrendersFocusOnKeystroke()
- Возвращает:
- true, если редактор должен получить фокус при активации нажатием клавиш
- Начиная с версии:
- 1.4
- См. также:
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 platform v1.2 вызовshouldSelectCellбольше не выполняется - Возвращает:
- false, если по какой-либо причине ячейку нельзя редактировать или индексы недопустимы
isEditing
@BeanProperty(bound=false) public boolean isEditing()
- Возвращает:
- true, если таблица редактирует ячейку
- См. также:
getEditorComponent
@BeanProperty(bound=false) public Component getEditorComponent()
- Возвращает:
- компонент, обрабатывающий сеанс редактирования
getEditingColumn
public int getEditingColumn()
- Возвращает:
- индекс столбца, содержащего редактируемую в данный момент ячейку; возвращает -1, если редактирование не выполняется
- См. также:
getEditingRow
public int getEditingRow()
- Возвращает:
- индекс строки, содержащей ячейку, которая в данный момент редактируется; возвращает -1, если редактирование не выполняется
- См. также:
getUI
public TableUI getUI()
- Переопределяет:
-
getUIв классеJComponent - Возвращает:
- объект
TableUI, который отображает этот компонент
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component's LookAndFeel.") public void setUI(TableUI ui)
- Параметры:
-
ui— объект L&F TableUI - См. также:
updateUI
public void updateUI()
UIManager об изменении L&F. Заменяет текущий объект UI последней версией из UIManager.- Переопределяет:
-
updateUIв классеJComponent - См. также:
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "TableUI"
- См. также:
setModel
@BeanProperty(description="The model that is the source of the data for this view.") public void setModel(TableModel dataModel)
dataModel и регистрирует ее для получения уведомлений от новой модели данных.- Параметры:
-
dataModel— новый источник данных для этой таблицы - Выбрасывает:
-
IllegalArgumentException— еслиdataModelравноnull - См. также:
getModel
public TableModel getModel()
TableModel, предоставляющую данные, отображаемые этой JTable.- Возвращает:
TableModel, предоставляющую данные, отображаемые этойJTable- См. также:
setColumnModel
@BeanProperty(description="The object governing the way columns appear in the view.") public void setColumnModel(TableColumnModel columnModel)
columnModel и регистрирует ее для получения уведомлений от новой модели столбцов. Также устанавливает модель столбцов для JTableHeader равной columnModel.- Параметры:
-
columnModel— новый источник данных для этой таблицы - Выбрасывает:
-
IllegalArgumentException— еслиcolumnModelравноnull - См. также:
getColumnModel
public TableColumnModel getColumnModel()
TableColumnModel, содержащую все сведения о столбцах этой таблицы.- Возвращает:
- объект, предоставляющий состояние столбцов таблицы
- См. также:
setSelectionModel
@BeanProperty(description="The selection model for rows.") public void setSelectionModel(ListSelectionModel selectionModel)
selectionModel и регистрирует ее для получения уведомлений от новой модели выбора.- Параметры:
-
selectionModel— новая модель выбора - Выбрасывает:
-
IllegalArgumentException— еслиselectionModelравноnull - См. также:
getSelectionModel
public ListSelectionModel getSelectionModel()
ListSelectionModel, используемую для хранения состояния выбора строк.- Возвращает:
- объект, предоставляющий состояние выбора строк;
null, если выбор строк запрещен - См. также:
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 - Параметры:
-
e—TableModelEvent, уведомляющее слушателя об изменении модели таблицы
columnAdded
public void columnAdded(TableColumnModelEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
columnAddedв интерфейсеTableColumnModelListener - Параметры:
-
e—TableColumnModelEvent - См. также:
columnRemoved
public void columnRemoved(TableColumnModelEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
columnRemovedв интерфейсеTableColumnModelListener - Параметры:
-
e—TableColumnModelEvent - См. также:
columnMoved
public void columnMoved(TableColumnModelEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
columnMovedв интерфейсеTableColumnModelListener - Параметры:
-
e— полученное событие - См. также:
columnMarginChanged
public void columnMarginChanged(ChangeEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
columnMarginChangedв интерфейсеTableColumnModelListener - Параметры:
-
e— полученное событие - См. также:
columnSelectionChanged
public void columnSelectionChanged(ListSelectionEvent e)
TableColumnModel. Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
columnSelectionChangedв интерфейсеTableColumnModelListener - Параметры:
-
e— полученное событие - См. также:
valueChanged
public void valueChanged(ListSelectionEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
valueChangedв интерфейсеListSelectionListener - Параметры:
-
e— полученное событие - См. также:
editingStopped
public void editingStopped(ChangeEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
editingStoppedв интерфейсеCellEditorListener - Параметры:
-
e— полученное событие - См. также:
editingCanceled
public void editingCanceled(ChangeEvent e)
Код приложения не использует эти методы явно; они применяются внутри JTable.
- Указано в:
-
editingCanceledв интерфейсеCellEditorListener - Параметры:
-
e— полученное событие - См. также:
setPreferredScrollableViewportSize
@BeanProperty(bound=false, description="The preferred size of the viewport.") public void setPreferredScrollableViewportSize(Dimension size)
- Параметры:
-
size— объектDimension, задающийpreferredSizeдляJViewport, представлением которого является эта таблица - См. также:
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
- Указано в:
-
getPreferredScrollableViewportSizeв интерфейсеScrollable - Возвращает:
- объект
Dimension, содержащийpreferredSizeобъектаJViewport, отображающего эту таблицу - См. также:
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Этот метод вызывается каждый раз, когда пользователь запрашивает прокрутку на одну единицу.
- Указано в:
-
getScrollableUnitIncrementв интерфейсеScrollable - Параметры:
-
visibleRect— видимая в области просмотра область представления -
orientation—SwingConstants.VERTICALилиSwingConstants.HORIZONTAL -
direction— значение меньше нуля для прокрутки вверх/влево, больше нуля — вниз/вправо - Возвращает:
- приращение «единицы» прокрутки в указанном направлении
- См. также:
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в зависимости от ориентации - См. также:
getScrollableTracksViewportWidth
@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
autoResizeMode установлено в AUTO_RESIZE_OFF, что означает, что ширина области просмотра не определяет ширину таблицы. В противном случае возвращает true.- Указано в:
-
getScrollableTracksViewportWidthв интерфейсеScrollable - Возвращает:
- false, если
autoResizeModeустановлено вAUTO_RESIZE_OFF; в противном случае возвращает true - См. также:
getScrollableTracksViewportHeight
@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
false, указывая, что высота области просмотра не определяет высоту таблицы, кроме случая, когда getFillsViewportHeight равно true и предпочтительная высота таблицы меньше высоты области просмотра.- Указано в:
-
getScrollableTracksViewportHeightв интерфейсеScrollable - Возвращает:
-
false, кроме случая, когдаgetFillsViewportHeightравноtrueи таблицу необходимо растянуть, чтобы заполнить область просмотра - См. также:
setFillsViewportHeight
@BeanProperty(description="Whether or not this table is always made large enough to fill the height of an enclosing viewport") public void setFillsViewportHeight(boolean fillsViewportHeight)
false.- Параметры:
-
fillsViewportHeight— указывает, должна ли эта таблица всегда увеличиваться настолько, чтобы заполнить высоту внешней области просмотра - С версии:
- 1.6
- См. также:
getFillsViewportHeight
public boolean getFillsViewportHeight()
- Возвращает:
- значение, указывающее, должна ли эта таблица всегда увеличиваться настолько, чтобы заполнить высоту внешней области просмотра
- С версии:
- 1.6
- См. также:
createDefaultRenderers
protected void createDefaultRenderers()
- См. также:
createDefaultEditors
protected void createDefaultEditors()
- См. также:
initializeLocalVars
protected void initializeLocalVars()
createDefaultDataModel
protected TableModel createDefaultDataModel()
DefaultTableModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели таблицы.- Возвращает:
- объект модели таблицы по умолчанию
- См. также:
createDefaultColumnModel
protected TableColumnModel createDefaultColumnModel()
DefaultTableColumnModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели столбцов.- Возвращает:
- объект модели столбцов по умолчанию
- См. также:
createDefaultSelectionModel
protected ListSelectionModel createDefaultSelectionModel()
DefaultListSelectionModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели выбора.- Возвращает:
- объект модели выбора по умолчанию
- См. также:
createDefaultTableHeader
protected JTableHeader createDefaultTableHeader()
JTableHeader. Подкласс может переопределить этот метод, чтобы вернуть другой объект заголовка таблицы.- Возвращает:
- объект заголовка таблицы по умолчанию
- См. также:
resizeAndRepaint
protected void resizeAndRepaint()
revalidate с последующим вызовом repaint.getCellEditor
public TableCellEditor getCellEditor()
null.- Возвращает:
TableCellEditor, выполняющий редактирование, илиnull, если таблица в данный момент не редактируется.- См. также:
setCellEditor
@BeanProperty(description="The table's active cell editor.") public void setCellEditor(TableCellEditor anEditor)
- Параметры:
-
anEditor— активный редактор ячейки - См. также:
setEditingColumn
public void setEditingColumn(int aColumn)
editingColumn.- Параметры:
-
aColumn— столбец ячейки, которую нужно отредактировать - См. также:
setEditingRow
public void setEditingRow(int aRow)
editingRow.- Параметры:
-
aRow— строка ячейки, которую нужно отредактировать - См. также:
getCellRenderer
public TableCellRenderer getCellRenderer(int row, int column)
TableColumn задано средство отображения, отличное от null, возвращает его. В противном случае определяет класс данных в этом столбце (с помощью getColumnClass) и возвращает средство отображения по умолчанию для этого типа данных. Примечание: Во всем пакете таблиц внутренние реализации всегда используют этот метод для предоставления средств отображения, благодаря чему поведение по умолчанию можно безопасно переопределить в подклассе.
- Параметры:
-
row— строка ячейки для отображения, где 0 — первая строка -
column— столбец ячейки для отображения, где 0 — первый столбец - Возвращает:
- назначенное средство отображения; если
null, возвращает средство отображения по умолчанию для этого типа объекта - См. также:
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 этого столбца есть ненулевой редактор, возвращается он. В противном случае определяется класс данных в этом столбце (с помощью getColumnClass) и возвращается редактор по умолчанию для этого типа данных. Примечание: Во всём пакете таблиц внутренние реализации всегда используют этот метод для предоставления редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить в подклассе.
- Параметры:
-
row— строка редактируемой ячейки, где 0 — первая строка -
column— столбец редактируемой ячейки, где 0 — первый столбец - Возвращает:
- редактор для этой ячейки; если
null, возвращает редактор по умолчанию для этого типа ячеек - См. также:
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, если пользователь не отменил печать
- Вызывает исключение:
-
PrinterException— если ошибка в системе печати приводит к прерыванию задания - Начиная с версии:
- 1.5
- См. также:
public boolean print(JTable.PrintMode printMode) throws PrinterException
JTable в указанном режиме печати без текста верхнего и нижнего колонтитулов. На время печати отображается модальное диалоговое окно с индикатором выполнения и возможностью отмены. Примечание: В безголовом режиме диалоговые окна не отображаются, а печать выполняется на принтере по умолчанию.
- Параметры:
-
printMode— режим печати, который должен использовать печатаемый объект - Возвращает:
- true, если пользователь не отменил печать
- Вызывает исключение:
-
PrinterException— если ошибка в системе печати приводит к прерыванию задания - Начиная с версии:
- 1.5
- См. также:
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTable в указанном режиме печати с заданным текстом верхнего и нижнего колонтитулов. На время печати отображается модальное диалоговое окно с индикатором выполнения и возможностью отмены. Примечание: В безголовом режиме диалоговые окна не отображаются, а печать выполняется на принтере по умолчанию.
- Параметры:
-
printMode— режим печати, который должен использовать печатаемый объект -
headerFormat—MessageFormat, задающий текст верхнего колонтитула при печати, или null, если колонтитул не нужен -
footerFormat—MessageFormat, задающий текст нижнего колонтитула при печати, или null, если колонтитул не нужен - Возвращает:
- true, если пользователь не отменил печать
- Вызывает исключение:
-
PrinterException— если ошибка в системе печати приводит к прерыванию задания - Начиная с версии:
- 1.5
- См. также:
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 -
PrinterException— если ошибка в системе печати приводит к прерыванию задания - Начиная с версии:
- 1.5
- См. также:
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(JTable.PrintMode, MessageFormat, MessageFormat).
- Параметры:
-
printMode— режим печати, который должен использовать печатаемый объект -
headerFormat—MessageFormat, задающий текст верхнего колонтитула при печати, илиnull, если колонтитул не нужен -
footerFormat—MessageFormat, задающий текст нижнего колонтитула при печати, илиnull, если колонтитул не нужен -
showPrintDialog— следует ли отображать диалоговое окно печати -
attr—PrintRequestAttributeSet, задающий атрибуты печати, илиnull, если атрибуты не нужны -
interactive— следует ли выполнять печать в интерактивном режиме -
service— целеваяPrintServiceилиnullдля использования принтера по умолчанию - Возвращает:
- true, если пользователь не отменил печать
- Вызывает исключение:
-
HeadlessException— если метод должен отобразить диалоговое окно печати или выполнить печать в интерактивном режиме, аGraphicsEnvironment.isHeadlessвозвращаетtrue -
PrinterException— если ошибка в системе печати приводит к прерыванию задания - Начиная с версии:
- 1.6
- См. также:
getPrintable
public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Printable для печати этой JTable. Этот метод предназначен для тех, кому требуется настроить реализацию Printable по умолчанию, используемую методами JTable print. Разработчикам, которым нужно просто напечатать таблицу, следует вызывать один из этих методов напрямую.
Printable можно запросить в одном из двух режимов печати. В обоих режимах строки таблицы естественным образом последовательно распределяются по нескольким страницам, и на каждую страницу помещается максимально возможное число строк. PrintMode.NORMAL означает, что таблица печатается в текущем размере. В этом режиме может потребоваться аналогичным образом распределить столбцы по страницам. Если это необходимо, столбцы распределяются в порядке, соответствующем ComponentOrientation таблицы. PrintMode.FIT_WIDTH означает, что при необходимости вывод будет уменьшен, чтобы вся ширина таблицы (а значит, и все столбцы) помещалась на каждой странице. Ширина и высота масштабируются одинаково, сохраняя соотношение сторон вывода.
В верхней части каждой страницы Printable отображает соответствующую часть JTableHeader таблицы, если она есть.
В вывод можно добавить текст верхнего и нижнего колонтитулов, передав аргументы MessageFormat. Код печати запрашивает у форматов строки, передавая один элемент, который может быть включён в форматированную строку: Integer, представляющий номер текущей страницы.
Рекомендуется ознакомиться с документацией по MessageFormat, поскольку некоторые символы, например одинарная кавычка, являются специальными и требуют экранирования.
Ниже приведён пример создания MessageFormat, которое можно использовать для печати строки «Таблица Duke: Страница — » и номера текущей страницы:
// 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 не определено после изменения таблицы.
- Параметры:
-
printMode— режим печати, который должен использовать печатаемый объект -
headerFormat—MessageFormat, задающий текст верхнего колонтитула при печати, или null, если колонтитул не нужен -
footerFormat—MessageFormat, задающий текст нижнего колонтитула при печати, или null, если колонтитул не нужен - Возвращает:
Printableдля печати этой JTable- Начиная с версии:
- 1.5
- См. также:
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
- Указан в:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
- AccessibleJTable, который служит AccessibleContext этой JTable
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/JTable.html
new JScrollPane(aTable).