Класс 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(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) для более сложных потребностей печати.
Как и все классы JComponent , вы можете использовать InputMap и ActionMap для сопоставления объекта Action с KeyStroke и выполнения действия при указанных условиях.
Предупреждение: Swing не потокобезопасен. Более подробная информация приведена в Политике потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, добавлена поддержка долгосрочного хранения всех JavaBeans в пакет java.beans . Пожалуйста, обратитесь к XMLEncoder.
- С момента:
- 1.2
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class |
JTable.AccessibleJTable |
Этот класс реализует поддержку доступности для класса JTable. |
static final class |
JTable.DropLocation |
Подкласс TransferHandler.DropLocation, представляющий расположение для опускания JTable. |
static enum |
JTable.PrintMode |
Режимы печати, используемые при печати JTable. |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent
JComponent.AccessibleJComponent
Вложенные классы/интерфейсы, объявленные в классе java.awt.Container
Container.AccessibleAWTContainer
Вложенные классы/интерфейсы, объявленные в классе java.awt.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 |
Таблица будет запрашивать TableModel для построения набора столбцов по умолчанию, если это значение true. |
protected int |
autoResizeMode |
Определяет, автоматически ли таблица изменяет ширину столбцов, чтобы они занимали всю ширину таблицы, и как выполняется изменение размера. |
protected TableCellEditor |
cellEditor |
Объект активного редактора ячейки, который перезаписывает экранное пространство, занятое текущей ячейкой, и позволяет пользователю изменять его содержимое. |
protected boolean |
cellSelectionEnabled |
Устарело начиная с Java 2 платформы v1.3. |
protected TableColumnModel |
columnModel |
Количество столбцов таблицы. |
protected TableModel |
dataModel |
Количество строк таблицы. |
protected Hashtable<Object, |
defaultEditorsByColumnClass |
Таблица объектов, которые отображают и редактируют содержимое ячейки, индексируемая по классу, как объявлено в getColumnClass в интерфейсе TableModel. |
protected Hashtable<Object, |
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 |
Количество выбранных строк таблицы, используемый для отслеживания выбора строк. |
protected boolean |
showHorizontalLines |
Таблица рисует горизонтальные линии между ячейками, если showHorizontalLines true. |
protected boolean |
showVerticalLines |
Таблица рисует вертикальные линии между ячейками, если showVerticalLines true. |
protected JTableHeader |
tableHeader |
Объект TableHeader, работающий с таблицей. |
Поля, объявленные в классе javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Поля, объявленные в классе java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Поля, объявленные в интерфейсе java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JTable() |
Создает стандартную JTable, которая инициализирована с моделью данных по умолчанию, моделью столбцов по умолчанию и моделью выбора по умолчанию. |
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, в том числе установив модель столбцов таблицы как 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() |
Возвращает расположение, которое этот компонент должен визуально указать как место расположения выгрузки во время операции перетаскивания над компонентом, или null, если никакое расположение в настоящее время не должно отображаться. |
final DropMode |
getDropMode() |
Возвращает режим выгрузки для этого компонента. |
int |
getEditingColumn() |
Возвращает индекс столбца, содержащего ячейку, которая в настоящее время редактируется. |
int |
getEditingRow() |
Возвращает индекс строки, содержащей ячейку, которая в настоящее время редактируется. |
Component |
getEditorComponent() |
Возвращает компонент, обрабатывающий сеанс редактирования. |
boolean |
getFillsViewportHeight() |
Возвращает, всегда ли эта таблица делает достаточно большой размер, чтобы заполнить высоту содержащего её viewport. |
Color |
getGridColor() |
Возвращает цвет, используемый для рисования линий сетки. |
Dimension |
getIntercellSpacing() |
Возвращает горизонтальное и вертикальное пространство между ячейками. |
TableModel |
getModel() |
Возвращает TableModel, который предоставляет данные, отображаемые этой JTable. |
Dimension |
getPreferredScrollableViewportSize() |
Возвращает предпочтительный размер viewport для этой таблицы. |
Printable |
getPrintable |
Возвращает Printable для использования при печати этой JTable. |
int |
getRowCount() |
Возвращает количество строк, которые могут быть показаны в JTable, при неограниченном пространстве. |
int |
getRowHeight() |
Возвращает высоту строки таблицы в пикселях. |
int |
getRowHeight |
Возвращает высоту ячеек в пикселях, в row. |
int |
getRowMargin() |
Получает количество пустого места в пикселях между ячейками. |
boolean |
getRowSelectionAllowed() |
Возвращает true, если строки могут быть выбраны. |
RowSorter<? extends TableModel> |
getRowSorter() |
Возвращает объект, ответственный за сортировку. |
int |
getScrollableBlockIncrement |
Возвращает visibleRect.height или visibleRect.width, в зависимости от ориентации этой таблицы. |
boolean |
getScrollableTracksViewportHeight() |
Возвращает false, чтобы указать, что высота viewport не определяет высоту таблицы, если getFillsViewportHeight равна true и предпочтительная высота таблицы меньше высоты viewport. |
boolean |
getScrollableTracksViewportWidth() |
Возвращает false, если autoResizeMode установлено в AUTO_RESIZE_OFF, что указывает, что ширина viewport не определяет ширину таблицы. |
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 |
Переопределяет метод JComponent getToolTipText для того, чтобы позволить использовать подсказки рендерера, если в нём установлен текст. |
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 платформы v1.4. |
void |
sorterChanged |
RowSorterListener уведомление о том, что RowSorter изменился каким-то образом. |
void |
tableChanged |
Вызывается, когда TableModel этой таблицы генерирует TableModelEvent. |
protected void |
unconfigureEnclosingScrollPane() |
Отменяет действие configureEnclosingScrollPane путём замены columnHeaderView окружающего окна прокрутки на null. |
void |
updateUI() |
Уведомление от UIManager о том, что L&F изменился. |
void |
valueChanged |
Вызывается при изменении выбора строки — перерисовывает, чтобы отобразить новый выбор. |
Методы, объявленные в классе javax.swing.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
Методы, объявленные в классе java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Методы, объявленные в классе java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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
columnModel
protected TableColumnModel columnModel
selectionModel
protected ListSelectionModel selectionModel
tableHeader
protected JTableHeader tableHeader
rowHeight
protected int rowHeight
rowMargin
protected int rowMargin
gridColor
protected Color gridColor
showHorizontalLines
protected boolean showHorizontalLines
showHorizontalLines равно true.showVerticalLines
protected boolean showVerticalLines
showVerticalLines равно true.autoResizeMode
protected int autoResizeMode
autoCreateColumnsFromModel
protected boolean autoCreateColumnsFromModel
preferredViewportSize
protected Dimension preferredViewportSize
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
public JTable(TableModel dm)
dm в качестве модели данных, моделью столбцов по умолчанию и моделью выделения по умолчанию.- Параметры:
-
dm- модель данных для таблицы - См. также:
JTable
public JTable(TableModel dm, TableColumnModel cm)
dm в качестве модели данных, cm в качестве модели столбцов и моделью выделения по умолчанию.- Параметры:
-
dm- модель данных для таблицы -
cm- модель столбцов для таблицы - См. также:
JTable
public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
dm в качестве модели данных, cm в качестве модели столбцов и sm в качестве модели выделения. Если любой из параметров имеет значение по умолчанию, этот метод инициализирует таблицу с соответствующей моделью по умолчанию. Флаг autoCreateColumnsFromModel устанавливается в false, если cm не null, в противном случае он устанавливается в true, и модель столбцов заполняется соответствующими TableColumns для столбцов в dm. - Параметры:
-
dm- модель данных для таблицы -
cm- модель столбцов для таблицы -
sm- модель выделения строк для таблицы - См. также:
JTable
public JTable(int numRows, int numColumns)
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);
- Parameters:
-
rowData- данные для новой таблицы -
columnNames- имена каждого столбца
JTable
public JTable(Object[][] rowData, Object[] columnNames)
JTable для отображения значений в двумерном массиве, rowData, с именами столбцов, columnNames. rowData является массивом строк, поэтому значение ячейки в строке 1, столбце 5 можно получить с помощью следующего кода: rowData[1][5];
Все строки должны иметь одинаковую длину с columnNames.
- Parameters:
-
rowData- данные для новой таблицы -
columnNames- имена каждого столбца
Подробное описание методов
addNotify
public void addNotify()
configureEnclosingScrollPane. - Overrides:
-
addNotifyв классеJComponent - See Also:
configureEnclosingScrollPane
protected void configureEnclosingScrollPane()
JTable является частью окружающего viewportView (обычная ситуация), настройте эту JScrollPane путём установки ScrollPane таблицы в качестве columnHeaderView области прокрутки. Когда JTable добавляется в JScrollPane стандартным способом с использованием new JScrollPane(myTable), вызывается addNotify, в JTable (когда таблица добавляется в область просмотра). Метод JTable класса addNotify в свою очередь вызывает этот метод, который является защищённым, чтобы это стандартное процедура установки могла быть переопределена подклассом.- See Also:
removeNotify
public void removeNotify()
unconfigureEnclosingScrollPane. - Overrides:
-
removeNotifyв классеJComponent - See Also:
unconfigureEnclosingScrollPane
protected void unconfigureEnclosingScrollPane()
configureEnclosingScrollPane, заменяя columnHeaderView окружающего элемента прокрутки на null. Метод JTable класса removeNotify вызывает этот метод, который является защищённым, чтобы эта стандартная процедура отключения могла быть переопределена подклассом.- Since:
- 1.3
- See Also:
createScrollPaneForTable
@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
new JScrollPane(aTable).new JScrollPane(aTable).- Parameters:
-
aTable-JTableдля использования в области прокрутки - Returns:
JScrollPaneсозданное с помощьюaTable
setTableHeader
@BeanProperty(description="The JTableHeader instance which renders the column headers.") public void setTableHeader(JTableHeader tableHeader)
tableHeader работающего с этой JTable на newHeader. Допустимо иметь null tableHeader.- Parameters:
-
tableHeader- новый tableHeader - See Also:
getTableHeader
public JTableHeader getTableHeader()
tableHeader, используемый этой JTable.- Returns:
tableHeader, используемый этой таблицей- See Also:
setRowHeight
@BeanProperty(description="The height of the specified row.") public void setRowHeight(int rowHeight)
rowHeight, перевалидирует и перерисовывает. Высота ячеек будет равна высоте строки минус отступ строки.- Parameters:
-
rowHeight- новая высота строки - Throws:
-
IllegalArgumentException- еслиrowHeightменьше 1 - See Also:
getRowHeight
public int getRowHeight()
- Returns:
- высота строки таблицы в пикселях
- See Also:
setRowHeight
@BeanProperty(description="The height in pixels of the cells in <code>row</code>") public void setRowHeight(int row, int rowHeight)
row на rowHeight, перевалидирует и перерисовывает. Высота ячеек в этой строке будет равна высоте строки минус отступ строки.- Parameters:
-
row- строка, высота которой изменяется -
rowHeight- новая высота строки в пикселях - Throws:
-
IllegalArgumentException- еслиrowHeightменьше 1 - Since:
- 1.3
getRowHeight
public int getRowHeight(int row)
row в пикселях.- Parameters:
-
row- строка, высота которой должна быть возвращена - Returns:
- высота ячеек в строке в пикселях
- Since:
- 1.3
setRowMargin
@BeanProperty(description="The amount of space between cells.") public void setRowMargin(int rowMargin)
- Parameters:
-
rowMargin- количество пикселей между ячейками в строке - See Also:
getRowMargin
public int getRowMargin()
getIntercellSpacing().height.- Returns:
- количество пикселей между ячейками в строке
- See Also:
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.- Parameters:
-
intercellSpacing-Dimension, определяющий новую ширину и высоту между ячейками - See Also:
getIntercellSpacing
public Dimension getIntercellSpacing()
- Returns:
- горизонтальное и вертикальное пространство между ячейками
- See Also:
setGridColor
@BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
gridColor и перерисовывает. Цвет по умолчанию зависит от внешнего вида.- Parameters:
-
gridColor- новый цвет линий сетки - Throws:
-
IllegalArgumentException- еслиgridColornull - See Also:
getGridColor
public Color getGridColor()
- Returns:
- цвет, используемый для рисования линий сетки
- See Also:
setShowGrid
@BeanProperty(description="The color used to draw the grid lines.") public void setShowGrid(boolean showGrid)
showGrid равно true, сетка отображается; если false — нет. Нет метода getShowGrid, так как это состояние хранится в двух переменных — showHorizontalLines и showVerticalLines, каждую из которых можно запросить независимо.- Parameters:
-
showGrid- true, если таблица должна отображать сетку линий - See Also:
setShowHorizontalLines
@BeanProperty(description="Whether horizontal lines should be drawn in between the cells.") public void setShowHorizontalLines(boolean showHorizontalLines)
showHorizontalLines равно true, линии отображаются; если false — нет.- Parameters:
-
showHorizontalLines- true, если таблица должна отображать горизонтальные линии - See Also:
setShowVerticalLines
@BeanProperty(description="Whether vertical lines should be drawn in between the cells.") public void setShowVerticalLines(boolean showVerticalLines)
showVerticalLines равно true, линии отображаются; если false — нет.- Parameters:
-
showVerticalLines- true, если таблица должна отображать вертикальные линии - See Also:
getShowHorizontalLines
public boolean getShowHorizontalLines()
- Returns:
- true, если таблица отображает горизонтальные линии между ячейками, false — если нет
- See Also:
getShowVerticalLines
public boolean getShowVerticalLines()
- Returns:
- true, если таблица отображает вертикальные линии между ячейками, false — если нет
- See Also:
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().- Parameters:
-
mode- Одно из 5 допустимых значений: AUTO_RESIZE_OFF, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_SUBSEQUENT_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_ALL_COLUMNS - See Also:
getAutoResizeMode
public int getAutoResizeMode()
- Returns:
- режим autoResizeMode таблицы
- See Also:
setAutoCreateColumnsFromModel
@BeanProperty(description="Automatically populates the columnModel when a new TableModel is submitted.") public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
autoCreateColumnsFromModel этой таблицы. Этот метод вызывает createDefaultColumnsFromModel, если autoCreateColumnsFromModel меняется с false на true.- Parameters:
-
autoCreateColumnsFromModel- true, если таблица должна автоматически создавать столбцы - See Also:
getAutoCreateColumnsFromModel
public boolean getAutoCreateColumnsFromModel()
setModel очистит все существующие столбцы и создаст новые столбцы из новой модели. Также, если событие в уведомлении tableChanged указывает на то, что вся таблица изменилась, то столбцы будут перестроены. Значение по умолчанию — true.- Returns:
- значение autoCreateColumnsFromModel таблицы
- See Also:
createDefaultColumnsFromModel
public void createDefaultColumnsFromModel()
getColumnCount, определённый в интерфейсе TableModel. Очищает все существующие столбцы перед созданием новых столбцов на основе информации из модели.
- See Also:
setDefaultRenderer
public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
TableColumn не установлен обработчик. Если renderer null, удаляет обработчик отрисовки по умолчанию для этого класса столбца.- Parameters:
-
columnClass- установить обработчик отрисовки ячеек по умолчанию для этого класса столбца -
renderer- обработчик отрисовки ячеек по умолчанию для этого класса столбца - See Also:
getDefaultRenderer
public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
TableColumn не задан обработчик. Во время отрисовки ячеек обработчик извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого columnClass нет записи, метод возвращает запись для самого специфичного суперкласса. JTable устанавливает записи для Object, Number, и Boolean, все из которых можно изменить или заменить.- Parameters:
-
columnClass- вернуть обработчик отрисовки ячеек по умолчанию для этого класса столбца - Returns:
- обработчик отрисовки для этого класса столбца
- See Also:
setDefaultEditor
public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
TableColumn не установлен редактор. Если редактирование не требуется в таблице или в конкретном столбце таблицы, используйте метод isCellEditable в интерфейсе TableModel для обеспечения того, что этот JTable не запустит редактор в этих столбцах. Если editor null, удаляет редактор по умолчанию для этого класса столбца.- Parameters:
-
columnClass- установить редактор ячеек по умолчанию для этого класса столбца -
editor- редактор ячеек по умолчанию для этого класса столбца - See Also:
getDefaultEditor
public TableCellEditor getDefaultEditor(Class<?> columnClass)
TableColumn не задан редактор. Во время редактирования ячеек редактор извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого columnClass нет записи, метод возвращает запись для самого специфичного суперкласса. JTable устанавливает записи для Object, Number, и Boolean, все из которых можно изменить или заменить.- Parameters:
-
columnClass- вернуть редактор ячеек по умолчанию для этого класса столбца - Returns:
- редактор ячеек по умолчанию для этого класса столбца
- See Also:
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 таблицы.
- Parameters:
-
b- включить или отключить автоматическую обработку перетаскивания - Throws:
-
HeadlessException- еслиbравноtrueиGraphicsEnvironment.isHeadless()возвращаетtrue - Since:
- 1.4
- See Also:
getDragEnabled
public boolean getDragEnabled()
- Returns:
- значение свойства
dragEnabled - Since:
- 1.4
- See Also:
setDropMode
public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTION. Однако рекомендуется использовать один из других режимов для улучшения пользовательского опыта. DropMode.ON, например, предлагает аналогичное поведение, отображая элементы как выделенные, но не влияет на фактическое выделение в таблице. JTable поддерживает следующие режимы опускания:
DropMode.USE_SELECTIONDropMode.ONDropMode.INSERTDropMode.INSERT_ROWSDropMode.INSERT_COLSDropMode.ON_OR_INSERTDropMode.ON_OR_INSERT_ROWSDropMode.ON_OR_INSERT_COLS
Режим опускания имеет смысл только в том случае, если у этого компонента есть TransferHandler , принимающий опускания.
- Parameters:
-
dropMode- используемый режим опускания - Throws:
-
IllegalArgumentException- если режим опускания не поддерживается илиnull - Since:
- 1.6
- See Also:
getDropMode
public final DropMode getDropMode()
- Returns:
- режим опускания для этого компонента
- Since:
- 1.6
- See Also:
getDropLocation
@BeanProperty(bound=false) public final JTable.DropLocation getDropLocation()
null , если расположение не должно отображаться в настоящее время. Этот метод не предназначен для запроса расположения опускания из TransferHandler, так как расположение опускания устанавливается только после того, как TransferHandler метод canImport возвратил результат и позволил отобразить расположение.
При изменении этого свойства компонент генерирует событие изменения свойства с именем "dropLocation".
- Returns:
- расположение опускания
- Since:
- 1.6
- See Also:
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.
- Parameters:
-
autoCreateRowSorter- создатьRowSorterавтоматически или нет - Since:
- 1.6
- See Also:
getAutoCreateRowSorter
public boolean getAutoCreateRowSorter()
true, если при изменении модели должен создаваться и устанавливаться новый RowSorter; в противном случае возвращает false.- Returns:
- true, если
RowSorterдолжен быть создан при изменении модели - Since:
- 1.6
setUpdateSelectionOnSort
@BeanProperty(expert=true, description="Whether or not to update the selection on sorting") public void setUpdateSelectionOnSort(boolean update)
- Parameters:
-
update- обновлять ли выделение при сортировке - Since:
- 1.6
getUpdateSelectionOnSort
public boolean getUpdateSelectionOnSort()
- Returns:
- необходимо ли обновлять выделение при сортировке
- Since:
- 1.6
setRowSorter
@BeanProperty(description="The table\'s RowSorter") public void setRowSorter(RowSorter<? extends TableModel> sorter)
RowSorter. RowSorter используется для предоставления сортировки и фильтрации таблице JTable. Этот метод очищает выделение и сбрасывает любые переменные высоты строк.
Этот метод генерирует PropertyChangeEvent при необходимости, с именем свойства "rowSorter". Для обратной совместимости этот метод генерирует дополнительное событие с именем свойства "sorter".
Если базовая модель RowSorter отличается от модели этого JTable, это может привести к неопределенному поведению.
- Parameters:
-
sorter-RowSorter;nullотключает сортировку - Since:
- 1.6
- See Also:
getRowSorter
public RowSorter<? extends TableModel> getRowSorter()
- Returns:
- объект, отвечающий за сортировку
- Since:
- 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 для получения подробной информации о режимах.
- Parameters:
-
selectionMode- режим, используемый моделями выбора строк и столбцов - See Also:
setRowSelectionAllowed
@BeanProperty(visualUpdate=true, description="If true, an entire row is selected for each selected cell.") public void setRowSelectionAllowed(boolean rowSelectionAllowed)
- Parameters:
-
rowSelectionAllowed- true, если эта модель будет разрешать выбор строк - See Also:
getRowSelectionAllowed
public boolean getRowSelectionAllowed()
- Returns:
- true, если строки могут быть выделены, в противном случае false
- See Also:
setColumnSelectionAllowed
@BeanProperty(visualUpdate=true, description="If true, an entire column is selected for each selected cell.") public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
- Parameters:
-
columnSelectionAllowed- true, если эта модель будет разрешать выбор столбцов - See Also:
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()
- Returns:
- true, если столбцы могут быть выбраны, иначе false
- See Also:
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 в заданное значение.- Parameters:
-
cellSelectionEnabled- true, если разрешен одновременный выбор строк и столбцов - See Also:
getCellSelectionEnabled
public boolean getCellSelectionEnabled()
getRowSelectionAllowed() &&
getColumnSelectionAllowed().- Returns:
- true, если модели выбора строк и столбцов включены
- See Also:
selectAll
public void selectAll()
clearSelection
public void clearSelection()
setRowSelectionInterval
public void setRowSelectionInterval(int index0, int index1)
index0 до index1, включительно.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getRowCount()-1]
setColumnSelectionInterval
public void setColumnSelectionInterval(int index0, int index1)
index0 до index1, включительно.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
addRowSelectionInterval
public void addRowSelectionInterval(int index0, int index1)
index0 до index1, включительно, к текущему выбору.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getRowCount()-1]
addColumnSelectionInterval
public void addColumnSelectionInterval(int index0, int index1)
index0 до index1, включительно, к текущему выбору.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
removeRowSelectionInterval
public void removeRowSelectionInterval(int index0, int index1)
index0 до index1, включительно.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getRowCount()-1]
removeColumnSelectionInterval
public void removeColumnSelectionInterval(int index0, int index1)
index0 до index1, включительно.- Parameters:
-
index0- один конец интервала -
index1- другой конец интервала - Throws:
-
IllegalArgumentException- еслиindex0илиindex1лежат вне [0,getColumnCount()-1]
getSelectedRow
@BeanProperty(bound=false) public int getSelectedRow()
- Returns:
- индекс первой выбранной строки
getSelectedColumn
@BeanProperty(bound=false) public int getSelectedColumn()
- Returns:
- индекс первого выбранного столбца
getSelectedRows
@BeanProperty(bound=false) public int[] getSelectedRows()
- Returns:
- массив целых чисел, содержащий индексы всех выбранных строк, или пустой массив, если ни одна строка не выбрана
- See Also:
getSelectedColumns
@BeanProperty(bound=false) public int[] getSelectedColumns()
- Returns:
- массив целых чисел, содержащий индексы всех выбранных столбцов, или пустой массив, если ни один столбец не выбран
- See Also:
getSelectedRowCount
@BeanProperty(bound=false) public int getSelectedRowCount()
- Returns:
- количество выбранных строк, 0, если нет выбранных строк
getSelectedColumnCount
@BeanProperty(bound=false) public int getSelectedColumnCount()
- Returns:
- количество выбранных столбцов, 0, если нет выбранных столбцов
isRowSelected
public boolean isRowSelected(int row)
- Parameters:
-
row- строка в модели строк - Returns:
- true, если
rowявляется допустимым индексом и строка в этом индексе выбрана (где 0 - первая строка)
isColumnSelected
public boolean isColumnSelected(int column)
- Parameters:
-
column- столбец в модели столбцов - Returns:
- true, если
columnявляется допустимым индексом и столбец в этом индексе выбран (где 0 - первый столбец)
isCellSelected
public boolean isCellSelected(int row, int column)
- Parameters:
-
row- строка, для которой запрашивается информация -
column- столбец, для которого запрашивается информация - Returns:
- 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. Применить состояние выделения якоря ко всем ячейкам между ним и указанной ячейкой.
- Parameters:
-
rowIndex- влияет на выделение вrow -
columnIndex- влияет на выделение вcolumn -
toggle- см. описание выше -
extend- если true, расширить текущее выделение - Since:
- 1.3
getSelectionForeground
public Color getSelectionForeground()
- Returns:
- объект
Colorдля свойства foreground - See Also:
setSelectionForeground
@BeanProperty(description="A default foreground color for selected cells.") public void setSelectionForeground(Color selectionForeground)
Значение по умолчанию этого свойства определяется реализацией темы.
Это связанное свойство JavaBeans.
- Parameters:
-
selectionForeground-Colorдля использования в качестве цвета первого плана для выделенных элементов списка - See Also:
getSelectionBackground
public Color getSelectionBackground()
- Returns:
- цвет
Colorдля фона выделенных элементов списка - See Also:
setSelectionBackground
@BeanProperty(description="A default background color for selected cells.") public void setSelectionBackground(Color selectionBackground)
Значение по умолчанию этого свойства определяется реализацией темы.
Это связанное свойство JavaBeans.
- Parameters:
-
selectionBackground-Colorдля использования в качестве цвета фона выделенных ячеек - See Also:
getColumn
public TableColumn getColumn(Object identifier)
TableColumn для столбца в таблице, идентификатор которого равен identifier, при сравнении с использованием equals.- Parameters:
-
identifier- объект идентификатора - Returns:
- объект
TableColumnстолбца, соответствующий идентификатору - Throws:
-
IllegalArgumentException- еслиidentifierравенnullили если столбец с таким идентификатором вTableColumnотсутствует
convertColumnIndexToModel
public int convertColumnIndexToModel(int viewColumnIndex)
viewColumnIndex в индекс столбца в модели таблицы. Возвращает индекс соответствующего столбца в модели. Если viewColumnIndex меньше нуля, возвращает viewColumnIndex.- Parameters:
-
viewColumnIndex- индекс столбца в представлении - Returns:
- индекс соответствующего столбца в модели
- See Also:
convertColumnIndexToView
public int convertColumnIndexToView(int modelColumnIndex)
modelColumnIndex в индекс столбца в представлении. Возвращает индекс соответствующего столбца в представлении; возвращает -1, если этот столбец не отображается. Если modelColumnIndex меньше нуля, возвращает modelColumnIndex.- Parameters:
-
modelColumnIndex- индекс столбца в модели - Returns:
- индекс соответствующего столбца в представлении
- See Also:
convertRowIndexToView
public int convertRowIndexToView(int modelRowIndex)
TableModel в представление. Если содержимое модели не отсортировано, индексы модели и представления совпадают.- Parameters:
-
modelRowIndex- индекс строки с точки зрения модели - Returns:
- индекс соответствующей строки в представлении или -1, если строка не отображается
- Throws:
-
IndexOutOfBoundsException- если сортировка включена и передан индекс, выходящий за пределы количества строкTableModel - Since:
- 1.6
- See Also:
convertRowIndexToModel
public int convertRowIndexToModel(int viewRowIndex)
TableModel. Если содержимое модели не отсортировано, индексы модели и представления совпадают.- Parameters:
-
viewRowIndex- индекс строки в представлении - Returns:
- индекс соответствующей строки в модели
- Throws:
-
IndexOutOfBoundsException- если сортировка включена и передан индекс, выходящий за пределы диапазонаJTable, определённый методомgetRowCount - Since:
- 1.6
- See Also:
getRowCount
@BeanProperty(bound=false) public int getRowCount()
JTable, при неограниченном пространстве. Если задана модель RowSorter с фильтром, количество возвращаемых строк может отличаться от количества строк в основной TableModel.- Returns:
- количество отображаемых строк в
JTable - See Also:
getColumnCount
@BeanProperty(bound=false) public int getColumnCount()
- Returns:
- количество столбцов в таблице
- See Also:
getColumnName
public String getColumnName(int column)
column.- Parameters:
-
column- столбец в представлении, запрашиваемый - Returns:
- имя столбца в позиции
columnв представлении, где первый столбец имеет позицию 0
getColumnClass
public Class<?> getColumnClass(int column)
column.- Parameters:
-
column- столбец в представлении, запрашиваемый - Returns:
- тип столбца в позиции
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 — это закрытый интерфейс, который позволяет любому структуре данных, содержащей набор элементов с размером, предпочтительным размером, максимальным размером и минимальным размером, манипулировать своими элементами с помощью алгоритма. Распределение дельты
Обзор
Назовем «ДЕЛЬТА» разницу между целевым размером и суммой предпочтительных размеров элементов в r. Индивидуальные размеры рассчитываются путем взятия исходных предпочтительных размеров и добавления части ДЕЛЬТА — эта часть основана на том, насколько каждый предпочтительный размер отличается от своей граничной величины (минимальной или максимальной).
Определение
Назовем индивидуальные ограничения min[i], max[i] и pref[i].
Назовем соответствующие суммы: MIN, MAX и PREF.
Каждый новый размер будет вычисляться следующим образом:
size[i] = pref[i] + delta[i]
где каждая индивидуальная дельта[i] вычисляется по формуле: Если (ДЕЛЬТА < 0), мы находимся в режиме уменьшения, где:
DELTA
delta[i] = ------------ * (pref[i] - min[i])
(PREF - MIN)
Если (ДЕЛЬТА > 0), мы находимся в режиме расширения, где:
DELTA
delta[i] = ------------ * (max[i] - pref[i])
(MAX - PREF)
Общий эффект заключается в том, что общий размер перемещается на ту же долю, k, к общему минимуму или максимуму, и эта доля гарантирует размещение необходимого пространства, ДЕЛЬТА.
Детали
Непосредственное вычисление представленных формул приведет к накопленным ошибкам округления, вызванным выполнением этой операции с конечной точностью (используя целые числа). Для решения этой проблемы множитель выше постоянно пересчитывается, и это учитывает ошибки округления в предыдущих итерациях. Результатом является алгоритм, который генерирует набор целых чисел, сумма которых точно равна предоставленной targetSize, и он делает это, равномерно распределяя ошибки округления по заданным элементам.
Когда границы MAX и MIN достигнуты
Когда targetSize находится вне диапазона [MIN, MAX], алгоритм устанавливает все размеры до соответствующего ограничивающего значения (максимального или минимального).
- Overrides:
-
doLayoutв классеContainer - См. также:
sizeColumnsToFit
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
doLayout().- Параметры:
-
lastColumnOnly- определяет, нужно ли изменять размер только последнего столбца - См. также:
sizeColumnsToFit
public void sizeColumnsToFit(int resizingColumn)
doLayout() вместо этого.- Параметры:
-
resizingColumn- столбец, изменение размера которого потребовало этой настройки или -1, если такого столбца нет - См. также:
getToolTipText
public String getToolTipText(MouseEvent event)
JComponent getToolTipText для возможности использования подсказок рендерера, если они заданы. Примечание: Для правильного отображения всплывающих подсказок рендереров JTable должен быть зарегистрированным компонентом в ToolTipManager. Это делается автоматически в initializeLocalVars, но если впоследствии JTable получит setToolTipText(null), он аннулирует компонент таблицы, и подсказки от рендереров больше не будут отображаться.
- Overrides:
-
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 платформы v1.2 вызовshouldSelectCellбольше не выполняется - Возвращает:
- false, если ячейка по какой-либо причине не может быть отредактирована или если индексы недействительны
isEditing
@BeanProperty(bound=false) public boolean isEditing()
- Возвращает:
- true, если таблица редактирует ячейку
- См. также:
getEditorComponent
@BeanProperty(bound=false) public Component getEditorComponent()
- Returns:
- Компонент, обрабатывающий сеанс редактирования
getEditingColumn
public int getEditingColumn()
- Returns:
- индекс столбца, содержащего ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
- See Also:
getEditingRow
public int getEditingRow()
- Returns:
- индекс строки, содержащей ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
- See Also:
getUI
public TableUI getUI()
- Overrides:
-
getUIв классеJComponent - Returns:
- объект L&F, который отображает этот компонент
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(TableUI ui)
- Parameters:
-
ui- объект TableUI L&F - See Also:
updateUI
public void updateUI()
UIManager, что L&F изменился. Заменяет текущий объект UI на последнюю версию из UIManager. - Overrides:
-
updateUIв классеJComponent - See Also:
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
- Overrides:
-
getUIClassIDв классеJComponent - Returns:
- строка "TableUI"
- See Also:
setModel
@BeanProperty(description="The model that is the source of the data for this view.") public void setModel(TableModel dataModel)
dataModel и регистрируется с ней для уведомлений о слушателях от новой модели данных.- Parameters:
-
dataModel- новый источник данных для этой таблицы - Throws:
-
IllegalArgumentException- еслиdataModelявляетсяnull - See Also:
getModel
public TableModel getModel()
TableModel, который предоставляет данные, отображаемые этим JTable.- Returns:
TableModel, который предоставляет данные, отображаемые этимJTable- See Also:
setColumnModel
@BeanProperty(description="The object governing the way columns appear in the view.") public void setColumnModel(TableColumnModel columnModel)
columnModel и регистрируется для уведомлений о слушателях от новой модели столбцов. Также устанавливает модель столбцов JTableHeader на columnModel. - Parameters:
-
columnModel- новый источник данных для этой таблицы - Throws:
-
IllegalArgumentException- еслиcolumnModelявляетсяnull - See Also:
getColumnModel
public TableColumnModel getColumnModel()
TableColumnModel, содержащий всю информацию о столбцах этой таблицы.- Returns:
- объект, предоставляющий состояние столбцов таблицы
- See Also:
setSelectionModel
@BeanProperty(description="The selection model for rows.") public void setSelectionModel(ListSelectionModel selectionModel)
selectionModel и регистрируется для уведомлений о слушателях от новой модели выбора.- Parameters:
-
selectionModel- новая модель выбора - Throws:
-
IllegalArgumentException- еслиselectionModelявляетсяnull - See Also:
getSelectionModel
public ListSelectionModel getSelectionModel()
ListSelectionModel, используемый для поддержания состояния выбора строк.- Returns:
- объект, предоставляющий состояние выбора строк,
nullесли выбор строк не разрешен - See Also:
sorterChanged
public void sorterChanged(RowSorterEvent e)
RowSorterListener уведомление о том, что RowSorter изменился каким-либо образом.- Specified by:
-
sorterChangedв интерфейсеRowSorterListener - Parameters:
-
e-RowSorterEventописывающий изменение - Throws:
-
NullPointerException- еслиeявляетсяnull - Since:
- 1.6
tableChanged
public void tableChanged(TableModelEvent e)
TableModel этой таблицы генерирует TableModelEvent. TableModelEvent должен быть построен в системе координат модели; соответствующее преобразование в систему координат представления выполняется этой JTable при получении события. Код приложения не будет явно использовать эти методы, они используются внутри JTable.
Обратите внимание, что начиная с версии 1.3, этот метод очищает выделение, если оно есть.
- Specified by:
-
tableChangedв интерфейсеTableModelListener - Parameters:
-
e-TableModelEventдля уведомления слушателя о том, что модель таблицы изменилась
columnAdded
public void columnAdded(TableColumnModelEvent e)
Код приложения не будет явно использовать эти методы, они используются внутри JTable.
- Specified by:
-
columnAddedв интерфейсеTableColumnModelListener - Parameters:
-
e-TableColumnModelEvent - See Also:
columnRemoved
public void columnRemoved(TableColumnModelEvent e)
Код приложения не будет явно использовать эти методы, они используются внутри JTable.
- Specified by:
-
columnRemovedв интерфейсеTableColumnModelListener - Parameters:
-
e-TableColumnModelEvent - See Also:
columnMoved
public void columnMoved(TableColumnModelEvent e)
Код приложения не будет явно использовать эти методы, они используются внутри JTable.
- Specified by:
-
columnMovedв интерфейсеTableColumnModelListener - Parameters:
-
e- полученное событие - See Also:
columnMarginChanged
public void columnMarginChanged(ChangeEvent e)
Код приложения не будет явно использовать эти методы, они используются внутри JTable.
- Specified by:
-
columnMarginChangedв интерфейсеTableColumnModelListener - Parameters:
-
e- полученное событие - See Also:
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области просмотра, для которой этой таблицей является представление - См. также:
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
- Указано в:
-
getPreferredScrollableViewportSizeв интерфейсеScrollable - Возвращает:
- объект
Dimension, содержащийpreferredSizeобласти просмотра, которая отображает эту таблицу - См. также:
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. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели столбцов.- Returns:
- объект модели столбцов по умолчанию
- See Also:
createDefaultSelectionModel
protected ListSelectionModel createDefaultSelectionModel()
DefaultListSelectionModel. Подкласс может переопределить этот метод, чтобы вернуть другой объект модели выделения.- Returns:
- объект модели выделения по умолчанию
- See Also:
createDefaultTableHeader
protected JTableHeader createDefaultTableHeader()
JTableHeader. Подкласс может переопределить этот метод, чтобы вернуть другой объект заголовка таблицы.- Returns:
- объект заголовка таблицы по умолчанию
- See Also:
resizeAndRepaint
protected void resizeAndRepaint()
revalidate в сочетании с repaint.getCellEditor
public TableCellEditor getCellEditor()
null , если таблица в данный момент не редактируется.- Returns:
TableCellEditor, осуществляющий редактирование, илиnull, если таблица в данный момент не редактируется.- See Also:
setCellEditor
@BeanProperty(description="The table\'s active cell editor.") public void setCellEditor(TableCellEditor anEditor)
- Parameters:
-
anEditor- активный редактор ячейки - See Also:
setEditingColumn
public void setEditingColumn(int aColumn)
editingColumn. - Parameters:
-
aColumn- столбец редактируемой ячейки - See Also:
setEditingRow
public void setEditingRow(int aRow)
editingRow. - Parameters:
-
aRow- строка редактируемой ячейки - See Also:
getCellRenderer
public TableCellRenderer getCellRenderer(int row, int column)
TableColumn задан рендерер, отличный от null, возвращает его. В противном случае находит класс данных в этом столбце (используя getColumnClass) и возвращает рендерер по умолчанию для этого типа данных. Примечание: Во всем пакете таблиц внутренние реализации всегда используют этот метод для предоставления рендереров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Parameters:
-
row- строка ячейки для рендеринга, где 0 — первая строка -
column- столбец ячейки для рендеринга, где 0 — первый столбец - Returns:
- назначенный рендерер; если
nullвозвращает рендерер по умолчанию для этого типа объекта - See Also:
prepareRenderer
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
row, column. Возвращает компонент (который может быть Component или JComponent) в позиции события. Во время печати этот метод настраивает рендерер без указания выделения или фокуса, чтобы предотвратить их отображение в выводе. Для выполнения других настроек, основанных на том, печатается ли таблица или нет, вы можете проверить значение JComponent.isPaintingForPrint() либо здесь, либо внутри пользовательских рендереров.
Примечание: Во всем пакете таблиц внутренние реализации всегда используют этот метод для подготовки рендереров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Parameters:
-
renderer- подготавливаемыйTableCellRenderer -
row- строка ячейки для рендеринга, где 0 — первая строка -
column- столбец ячейки для рендеринга, где 0 — первый столбец - Returns:
Componentв позиции события
getCellEditor
public TableCellEditor getCellEditor(int row, int column)
row и column. Если для данного столбца у TableColumn задан редактор, отличный от null, возвращает его. В противном случае находит класс данных в этом столбце (используя getColumnClass) и возвращает редактор по умолчанию для этого типа данных. Примечание: Во всем пакете таблиц внутренние реализации всегда используют этот метод для предоставления редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Parameters:
-
row- строка ячейки для редактирования, где 0 — первая строка -
column- столбец ячейки для редактирования, где 0 — первый столбец - Returns:
- редактор для данной ячейки; если
nullвозвращает редактор по умолчанию для этого типа ячейки - See Also:
prepareEditor
public Component prepareEditor(TableCellEditor editor, int row, int column)
row, column. Примечание: Во всем пакете таблиц внутренние реализации всегда используют этот метод для подготовки редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.
- Parameters:
-
editor- редактор, который надо настроить -
row- строка ячейки для редактирования, где 0 — первая строка -
column- столбец ячейки для редактирования, где 0 — первый столбец - Returns:
- редактируемая
Component
removeEditor
public void removeEditor()
paramString
protected String paramString()
null.- Overrides:
-
paramStringв классеJComponent - Returns:
- строковое представление этой таблицы
public boolean print() throws PrinterException
JTable в режиме PrintMode.FIT_WIDTH, без заголовка или подвала. В течение печати будет показан модальный диалог прогресса с опцией прерывания. Примечание: в режиме без графического интерфейса диалоги не отображаются, и печать выполняется на стандартном принтере.
- Returns:
- true, если печать не отменена пользователем
- Throws:
-
SecurityException- если данному потоку не разрешено инициировать запрос на печать -
PrinterException- если в системе печати произошла ошибка, из-за которой работа была прервана - Since:
- 1.5
- See Also:
public boolean print(JTable.PrintMode printMode) throws PrinterException
JTable в заданном режиме печати без заголовка или подвала. В течение процесса печати будет отображаться модальный диалог с возможностью прерывания. Примечание: В режиме без графического интерфейса диалоги не отображаются, а печать выполняется на стандартном принтере.
- Parameters:
-
printMode- режим печати, который должен использовать печатаемый объект - Returns:
- true, если печать не была отменена пользователем
- Throws:
-
SecurityException- если данному потоку не разрешено инициировать запрос на задание печати -
PrinterException- если при работе с системой печати произошла ошибка, из-за которой задание было прервано - Since:
- 1.5
- See Also:
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTable в заданном режиме печати со специфицированным заголовком и подвалом. В течение процесса печати будет отображаться модальный диалог с возможностью прерывания. Примечание: В режиме без графического интерфейса диалоги не отображаются, а печать выполняется на стандартном принтере.
- Parameters:
-
printMode- режим печати, который должен использовать печатаемый объект -
headerFormat-MessageFormat, определяющий текст, используемый в качестве заголовка при печати, или null для отсутствия заголовка -
footerFormat-MessageFormat, определяющий текст, используемый в качестве подвала при печати, или null для отсутствия подвала - Returns:
- true, если печать не была отменена пользователем
- Throws:
-
SecurityException- если данному потоку не разрешено инициировать запрос на задание печати -
PrinterException- если при работе с системой печати произошла ошибка, из-за которой задание было прервано - Since:
- 1.5
- See Also:
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException
print, с использованием стандартного принтера в качестве службы печати.- Parameters:
-
printMode- режим печати, который должен использовать печатаемый объект -
headerFormat-MessageFormat, определяющий текст, используемый в качестве заголовка при печати, илиnullдля отсутствия заголовка -
footerFormat-MessageFormat, определяющий текст, используемый в качестве подвала при печати, илиnullдля отсутствия подвала -
showPrintDialog- отображать ли диалог печати -
attr-PrintRequestAttributeSet, содержащий атрибуты печати, илиnullдля отсутствия атрибутов -
interactive- печатать в интерактивном режиме - Returns:
- true, если печать не была отменена пользователем
- Throws:
-
HeadlessException- если метод запросил показ диалога печати или интерактивный режим, иGraphicsEnvironment.isHeadlessвернулtrue -
SecurityException- если данному потоку не разрешено инициировать запрос на задание печати -
PrinterException- если при работе с системой печати произошла ошибка, из-за которой задание было прервано - Since:
- 1.5
- See Also:
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service) throws PrinterException, HeadlessException
JTable. Выполняет шаги, которые большинство разработчиков выполняют для печати JTable. Короче говоря, она подготавливает таблицу, вызывает getPrintable для получения соответствующего Printable, а затем отправляет его на принтер. Параметр boolean позволяет указать, отображать ли пользователю диалог печати. Если диалог отображается, пользователь может изменить принтер назначения или атрибуты печати, а также отменить печать. Еще два параметра позволяют указать PrintService и атрибуты печати. Эти параметры можно использовать для задания начальных значений для диалога печати или для задания значений, когда диалог не отображается.
Второй параметр boolean позволяет указать, выполнять ли печать в интерактивном режиме. Если true, то во время печати отображается модальный диалог с опцией прерывания. Этот диалог также блокирует любые действия пользователя, которые могут повлиять на таблицу. Однако он не может предотвратить изменение таблицы кодом (например, другим потоком, который публикует обновления с помощью SwingUtilities.invokeLater). Поэтому разработчик отвечает за обеспечение того, чтобы никакой другой код не изменял таблицу во время печати (недействительные изменения включают изменения размера, отрисовщиков или исходных данных). Поведение печати не определено, когда таблица изменяется во время печати.
Если для этого параметра задано false, то диалог не будет отображаться, и печать начнется сразу же в потоке обработки событий. Это блокирует обработку других событий, включая перерисовки, до завершения печати. Хотя это эффективно предотвращает изменение таблицы, это не обеспечивает хороший пользовательский опыт. По этой причине рекомендуется указывать false только при печати из приложения без видимого графического интерфейса.
Примечание: Попытка отобразить диалог печати или запустить интерактивный режим в режиме без графического интерфейса приведет к HeadlessException.
Перед получением печатаемого объекта, этот метод корректно завершит редактирование, если необходимо, чтобы предотвратить отображение редактора в выводимом результатах. Кроме того, JTable подготовит свои отрисовщики во время печати, чтобы не отображать выделение и фокус. Для дальнейшей настройки внешнего вида таблицы в выводе разработчики могут предоставить пользовательские отрисовщики или код рисования, условные на основе значения JComponent.isPaintingForPrint().
См. getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) для получения более подробной информации о том, как печатается таблица.
- Parameters:
-
printMode- режим печати, который должен использовать печатаемый объект -
headerFormat-MessageFormat, определяющий текст, используемый в качестве заголовка при печати, илиnullдля отсутствия заголовка -
footerFormat-MessageFormat, определяющий текст, используемый в качестве подвала при печати, илиnullдля отсутствия подвала -
showPrintDialog- отображать ли диалог печати -
attr-PrintRequestAttributeSet, содержащий атрибуты печати, илиnullдля отсутствия атрибутов -
interactive- печатать в интерактивном режиме -
service- принтер назначенияPrintService, илиnullдля использования стандартного принтера - Returns:
- true, если печать не была отменена пользователем
- Throws:
-
HeadlessException- если метод запросил показ диалога печати или интерактивный режим, иGraphicsEnvironment.isHeadlessвернулtrue -
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkPrintJobAccess()запрещает этому потоку создавать запрос на задание печати -
PrinterException- если при работе с системой печати произошла ошибка, из-за которой задание было прервано - Since:
- 1.6
- See Also:
getPrintable
public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Этот метод предназначен для разработчиков, желающих настроить стандартную реализацию печати, используемую методами JTable. Разработчики, которые хотят просто напечатать таблицу, должны использовать один из этих методов напрямую.
Объект может быть запрошен в одном из двух режимов печати. В обоих режимах строки таблицы естественным образом распределяются по страницам, размещая на каждой странице максимальное количество строк. PrintMode.NORMAL указывает, что таблица должна быть напечатана в её текущем размере. В этом режиме может потребоваться распределить столбцы по страницам аналогичным образом. При необходимости столбцы распределяются в порядке, согласованном с ComponentOrientation таблицы. PrintMode.FIT_WIDTH указывает, что вывод должен быть уменьшен в масштабе, если необходимо, для размещения всей ширины таблицы (и, следовательно, всех столбцов) на каждой странице. Ширина и высота масштабируются одинаково, сохраняя соотношение сторон вывода.
Printable отображает заголовок части таблицы на каждой странице с соответствующей частью JTableHeader, если она есть.
Текст заголовка и подвала может быть добавлен в вывод, предоставив MessageFormat аргументы. Код печати запрашивает строки из форматов, предоставляя один элемент, который может быть включен в отформатированную строку: Integer , представляющий текущий номер страницы.
Рекомендуется ознакомиться с документацией по MessageFormat, так как некоторые символы, такие как одинарная кавычка, являются специальными и требуют экранирования.
Вот пример создания объекта, который может использоваться для печати «Таблица Дюка: Страница - » и текущего номера страницы:
// notice the escaping of the single quote
// notice how the page number is included with "{0}"
MessageFormat format = new MessageFormat("Duke''s Table: Page - {0}");
Printable ограничивает то, что он рисует, на печатаемой области каждой страницы, которую он печатает. В некоторых случаях он может обнаружить, что не может разместить всё содержимое страницы в этой области. В этих случаях вывод может быть обрезан, но реализация прилагает усилия, чтобы сделать это разумным образом. Вот несколько ситуаций, в которых это известно, и как эта конкретная реализация может с ними справиться:
- В любом режиме, когда текст заголовка или подвала слишком широк для размещения полностью в печатаемой области, печатается как можно больше текста, начиная с начала, как определено
ComponentOrientationтаблицы. - В любом режиме, когда строка слишком высока для размещения в печатаемой области, печатается верхняя часть строки, и нижняя граница таблицы не рисуется.
- В
PrintMode.NORMALрежиме, когда столбец слишком широк для размещения в печатаемой области, печатается центральная часть столбца, а левая и правая границы таблицы не рисуются.
Совершенно допустимо, чтобы этот объект был вложен в другой, чтобы создать сложные отчеты и документы. Вы даже можете запросить, чтобы разные страницы были отображены в разных печатаемых областях. Реализация должна быть готова к этому (возможно, выполняя вычисления макета на лету). Однако предоставление разных высот для каждой страницы, вероятно, не будет хорошо работать с PrintMode.NORMAL, когда ему придётся распределять столбцы по страницам.
Что касается настройки отображения таблицы в печатном результате, сам JTable позаботится о скрытии выделения и фокуса во время печати. Для дополнительных настроек ваши обработчики рисования или код рисования могут настроить вид, основываясь на значении JComponent.isPaintingForPrint()
Также, перед вызовом этого метода вы можете сначала изменить состояние таблицы, например, отменить редактирование ячеек или позволить пользователю соответствующим образом изменить размер таблицы. Однако вы не должны изменять состояние таблицы после получения этого Printable (недопустимые изменения включают изменения размера или базовых данных). Поведение возвращённого Printable не определено после изменения таблицы.
- Parameters:
-
printMode- режим печати, который должен использовать объект печати -
headerFormat- объект, определяющий текст для использования в качестве заголовка при печати, или null для отсутствия заголовка -
footerFormat- объект, определяющий текст для использования в качестве подвала при печати, или null для отсутствия подвала - Returns:
- объект для печати этой JTable
- Since:
- 1.5
- See Also:
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
- Specified by:
-
getAccessibleContextin interfaceAccessible - Overrides:
-
getAccessibleContextin classComponent - Returns:
- AccessibleJTable, который служит AccessibleContext для этой JTable
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/JTable.html
new JScrollPane(aTable).