Spec-Zone.ru › OpenJDK 24

Класс JTable

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
Все реализованные интерфейсы:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable
@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
См. также:
  • DefaultTableModel
  • TableRowSorter

Краткое описание вложенных классов

Модификатор и тип Класс Описание
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 для построения набора столбцов по умолчанию, если это значение истинно.
protected int autoResizeMode
Определяет, автоматически ли таблица изменяет ширину столбцов таблицы, чтобы занять всю ширину таблицы, и как она выполняет изменение размера.
protected TableCellEditor cellEditor
Активный объект редактора ячейки, который перезаписывает экранное пространство, занимаемое текущей ячейкой, и позволяет пользователю изменить её содержимое.
protected boolean cellSelectionEnabled
Устарело начиная с Java 2 platform v1.3.
protected TableColumnModel columnModel
TableColumnModel таблицы.
protected TableModel dataModel
TableModel таблицы.
protected Hashtable<Object,Object> defaultEditorsByColumnClass
Таблица объектов, которые отображают и редактируют содержимое ячейки, индексируемые по классу, как объявлено в getColumnClass в интерфейсе TableModel.
protected Hashtable<Object,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
Истина, если в этой таблице разрешено выделение строк.
protected Color selectionBackground
Цвет фона выделенных ячеек.
protected Color selectionForeground
Цвет переднего плана выделенных ячеек.
protected ListSelectionModel selectionModel
ListSelectionModel таблицы, используемый для отслеживания выделенных строк.
protected boolean showHorizontalLines
Таблица рисует горизонтальные линии между ячейками, если showHorizontalLines истинно.
protected boolean showVerticalLines
Таблица рисует вертикальные линии между ячейками, если showVerticalLines истинно.
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(int numRows, int numColumns)
Создаёт JTable с numRows и numColumns пустых ячеек, используя DefaultTableModel.
JTable(Object[][] rowData, Object[] columnNames)
Создаёт JTable для отображения значений в двумерном массиве, rowData, с именами столбцов, columnNames.
JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)
Создаёт JTable для отображения значений в Vector Vectors, rowData, с именами столбцов, columnNames.
JTable(TableModel dm)
Создаёт JTable, инициализированную с dm в качестве модели данных, модели столбцов по умолчанию и модели выделения по умолчанию.
JTable(TableModel dm, TableColumnModel cm)
Создаёт JTable, инициализированную с dm в качестве модели данных, cm в качестве модели столбцов и моделью выделения по умолчанию.
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
Создаёт JTable, инициализированную с dm в качестве модели данных, cm в качестве модели столбцов и sm в качестве модели выделения.

Краткое описание методов

Модификатор и тип Метод Описание
void addColumn(TableColumn aColumn)
Добавляет aColumn в конец массива столбцов, хранящегося в модели столбцов этого JTable.
void addColumnSelectionInterval(int index0, int index1)
Добавляет столбцы с index0 по index1 (включительно) в текущий выбор.
void addNotify()
Вызывает метод configureEnclosingScrollPane.
void addRowSelectionInterval(int index0, int index1)
Добавляет строки с index0 по index1 (включительно) в текущий выбор.
void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
Обновляет модели выбора таблицы в зависимости от состояния двух флагов: toggle и extend.
void clearSelection()
Снимает выбор со всех выбранных столбцов и строк.
void columnAdded(TableColumnModelEvent e)
Вызывается при добавлении столбца в модель столбцов таблицы.
int columnAtPoint(Point point)
Возвращает индекс столбца, в котором находится point, или -1, если результат не находится в диапазоне [0, getColumnCount()-1].
void columnMarginChanged(ChangeEvent e)
Вызывается при перемещении столбца из-за изменения отступа.
void columnMoved(TableColumnModelEvent e)
Вызывается при изменении расположения столбца.
void columnRemoved(TableColumnModelEvent e)
Вызывается при удалении столбца из модели столбцов таблицы.
void columnSelectionChanged(ListSelectionEvent e)
Вызывается при изменении модели выбора TableColumnModel.
protected void configureEnclosingScrollPane()
Если этот JTable является viewportView вложенной JScrollPane (обычная ситуация), настраивает этот ScrollPane, среди прочего, установив tableHeader таблицы в качестве columnHeaderView области прокрутки.
int convertColumnIndexToModel(int viewColumnIndex)
Преобразует индекс столбца в представлении по позиции viewColumnIndex в индекс столбца в модели таблицы.
int convertColumnIndexToView(int modelColumnIndex)
Преобразует индекс столбца в модели таблицы по позиции modelColumnIndex в индекс столбца в представлении.
int convertRowIndexToModel(int viewRowIndex)
Преобразует индекс строки в представлении в соответствующий индекс в базовой TableModel.
int convertRowIndexToView(int modelRowIndex)
Преобразует индекс строки в 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(JTable aTable)
Устарело.
С версии Swing 1.0.2 заменено на new JScrollPane(aTable).
void doLayout()
Принудительно выполняет размещение строк и столбцов в этой таблице.
boolean editCellAt(int row, int column)
Программно начинает редактирование ячейки по координатам row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих координатах редактируема.
boolean editCellAt(int row, int column, EventObject e)
Программно начинает редактирование ячейки по координатам row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих координатах редактируема.
void editingCanceled(ChangeEvent e)
Вызывается при отмене редактирования.
void editingStopped(ChangeEvent e)
Вызывается по завершении редактирования.
AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этой JTable.
boolean getAutoCreateColumnsFromModel()
Определяет, будет ли таблица создавать столбцы по умолчанию из модели.
boolean getAutoCreateRowSorter()
Возвращает true, если при каждом изменении модели должен создаваться и устанавливаться новый сортировщик RowSorter в качестве сортировщика таблицы; в противном случае возвращает false.
int getAutoResizeMode()
Возвращает режим автоматического изменения размера таблицы.
TableCellEditor getCellEditor()
Возвращает активный редактор ячейки, который является null, если таблица в данный момент не редактируется.
TableCellEditor getCellEditor(int row, int column)
Возвращает подходящий редактор для ячейки, заданной row и column.
Rectangle getCellRect(int row, int column, boolean includeSpacing)
Возвращает прямоугольник для ячейки, расположенной на пересечении row и column.
TableCellRenderer getCellRenderer(int row, int column)
Возвращает подходящий визуализатор для ячейки, заданной этой строкой и столбцом.
boolean getCellSelectionEnabled()
Возвращает true, если включены модели выбора строк и столбцов.
TableColumn getColumn(Object identifier)
Возвращает объект TableColumn для столбца в таблице, идентификатор которого равен identifier, при сравнении с использованием equals.
Class<?> getColumnClass(int column)
Возвращает тип столбца, отображаемого в представлении по позиции столбца column.
int getColumnCount()
Возвращает количество столбцов в модели столбцов.
TableColumnModel getColumnModel()
Возвращает TableColumnModel, содержащий всю информацию о столбцах этой таблицы.
String getColumnName(int column)
Возвращает имя столбца, отображаемого в представлении по позиции столбца column.
boolean getColumnSelectionAllowed()
Возвращает true, если можно выбирать столбцы.
TableCellEditor getDefaultEditor(Class<?> columnClass)
Возвращает редактор, который будет использоваться, если редактор не был установлен в TableColumn.
TableCellRenderer getDefaultRenderer(Class<?> columnClass)
Возвращает визуализатор ячейки, который будет использоваться, если визуализатор не был установлен в TableColumn.
boolean getDragEnabled()
Возвращает, включена ли автоматическая обработка перетаскивания.
final JTable.DropLocation getDropLocation()
Возвращает расположение, которое этот компонент должен визуально указывать как расположение выгрузки во время операции перетаскивания над компонентом, или null, если в данный момент не должно отображаться никакого расположения.
final DropMode getDropMode()
Возвращает режим выгрузки для этого компонента.
int getEditingColumn()
Возвращает индекс столбца, содержащего ячейку, которая в данный момент редактируется.
int getEditingRow()
Возвращает индекс строки, содержащей ячейку, которая в данный момент редактируется.
Component getEditorComponent()
Возвращает компонент, обрабатывающий сеанс редактирования.
boolean getFillsViewportHeight()
Возвращает, является ли эта таблица всегда достаточно большой, чтобы заполнить высоту окружающего представления.
Color getGridColor()
Возвращает цвет, используемый для рисования линий сетки.
Dimension getIntercellSpacing()
Возвращает горизонтальное и вертикальное расстояние между ячейками.
TableModel getModel()
Возвращает TableModel, который предоставляет данные, отображаемые этой JTable.
Dimension getPreferredScrollableViewportSize()
Возвращает предпочтительный размер представления для этой таблицы.
Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Возвращает Printable для использования при печати этой JTable.
int getRowCount()
Возвращает количество строк, которое может быть показано в JTable при неограниченном пространстве.
int getRowHeight()
Возвращает высоту строки таблицы в пикселях.
int getRowHeight(int row)
Возвращает высоту ячеек в row в пикселях.
int getRowMargin()
Получает количество пустого пространства между ячейками в пикселях.
boolean getRowSelectionAllowed()
Возвращает true, если строки могут быть выделены.
RowSorter<? extends TableModel> getRowSorter()
Возвращает объект, ответственный за сортировку.
int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает visibleRect.height или visibleRect.width, в зависимости от ориентации этой таблицы.
boolean getScrollableTracksViewportHeight()
Возвращает false, чтобы указать, что высота представления не определяет высоту таблицы, если getFillsViewportHeight равно true, а предпочтительная высота таблицы меньше высоты представления.
boolean getScrollableTracksViewportWidth()
Возвращает false, если autoResizeMode установлено в AUTO_RESIZE_OFF, что указывает, что ширина представления не определяет ширину таблицы.
int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает шаг прокрутки (в пикселях), который полностью отображает одну новую строку или столбец (в зависимости от ориентации).
int getSelectedColumn()
Возвращает индекс первого выделенного столбца, -1, если столбец не выделен.
int getSelectedColumnCount()
Возвращает количество выделенных столбцов.
int[] getSelectedColumns()
Возвращает индексы всех выделенных столбцов.
int getSelectedRow()
Возвращает индекс первой выделенной строки, -1, если строка не выделена.
int getSelectedRowCount()
Возвращает количество выделенных строк.
int[] getSelectedRows()
Возвращает индексы всех выделенных строк.
Color getSelectionBackground()
Возвращает цвет фона для выделенных ячеек.
Color getSelectionForeground()
Возвращает цвет первого плана для выделенных ячеек.
ListSelectionModel getSelectionModel()
Возвращает ListSelectionModel, используемый для сохранения состояния выбора строк.
boolean getShowHorizontalLines()
Возвращает true, если таблица рисует горизонтальные линии между ячейками, false — если нет.
boolean getShowVerticalLines()
Возвращает true, если таблица рисует вертикальные линии между ячейками, false — если нет.
boolean getSurrendersFocusOnKeystroke()
Возвращает true, если редактор должен получить фокус, когда нажатия клавиш активируют редактор
JTableHeader getTableHeader()
Возвращает tableHeader, используемый этой JTable.
String getToolTipText(MouseEvent event)
Переопределяет метод JComponent's getToolTipText для разрешения использования подсказок рендерера, если для него задан текст.
TableUI getUI()
Возвращает объект L&F, который рендерит этот компонент.
String getUIClassID()
Возвращает суффикс, используемый для построения имени класса L&F, используемого для рендеринга этого компонента.
boolean getUpdateSelectionOnSort()
Возвращает true, если выбор должен обновляться после сортировки.
Object getValueAt(int row, int column)
Возвращает значение ячейки в row и column.
protected void initializeLocalVars()
Инициализирует свойства таблицы их значениями по умолчанию.
boolean isCellEditable(int row, int column)
Возвращает true, если ячейка в row и column является редактируемой.
boolean isCellSelected(int row, int column)
Возвращает true, если указанные индексы находятся в допустимом диапазоне строк и столбцов, и ячейка в указанном положении выделена.
boolean isColumnSelected(int column)
Возвращает true, если указанный индекс находится в допустимом диапазоне столбцов и столбец в этом индексе выделен.
boolean isEditing()
Возвращает true, если ячейка находится в режиме редактирования.
boolean isRowSelected(int row)
Возвращает true, если указанный индекс находится в допустимом диапазоне строк и строка в этом индексе выделена.
void moveColumn(int column, int targetColumn)
Перемещает столбец column в позицию, которую в данный момент занимает столбец targetColumn в представлении.
protected String paramString()
Возвращает строковое представление этой таблицы.
Component prepareEditor(TableCellEditor editor, int row, int column)
Подготавливает редактор, запрашивая у модели данных значение и состояние выбора ячейки в row, column.
Component prepareRenderer(TableCellRenderer renderer, int row, int column)
Подготавливает рендерер, запрашивая у модели данных значение и состояние выбора ячейки в row, column.
boolean print()
Удобный метод, отображающий диалог печати, а затем печатает эту JTable в режиме PrintMode.FIT_WIDTH без заголовка или подвала.
boolean print(JTable.PrintMode printMode)
Удобный метод, отображающий диалог печати, а затем печатает эту JTable в заданном режиме печати без заголовка или подвала.
boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Удобный метод, отображающий диалог печати, а затем печатает эту JTable в заданном режиме печати с указанным заголовком и подвалом.
boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive)
Печатает эту таблицу, как указано в полном методе print, с указанным по умолчанию принтером как службой печати.
boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service)
Печатает эту JTable.
void removeColumn(TableColumn aColumn)
Удаляет aColumn из массива столбцов этой JTable.
void removeColumnSelectionInterval(int index0, int index1)
Снимает выделение столбцов с index0 до index1 включительно.
void removeEditor()
Отбрасывает объект редактора и освобождает занимаемое им пространство для рендеринга ячеек.
void removeNotify()
Вызывает метод unconfigureEnclosingScrollPane.
void removeRowSelectionInterval(int index0, int index1)
Снимает выделение строк с index0 до index1 включительно.
protected void resizeAndRepaint()
Эквивалентно revalidate, за которым следует repaint.
int rowAtPoint(Point point)
Возвращает индекс строки, в которой находится point, или -1, если результат не находится в диапазоне [0, getRowCount()-1].
void selectAll()
Выбирает все строки, столбцы и ячейки в таблице.
void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
Устанавливает флаг autoCreateColumnsFromModel этой таблицы.
void setAutoCreateRowSorter(boolean autoCreateRowSorter)
Указывает, нужно ли создавать RowSorter для таблицы при каждом изменении её модели.
void setAutoResizeMode(int mode)
Устанавливает режим автоматического изменения размера таблицы при её изменении размера.
void setCellEditor(TableCellEditor anEditor)
Устанавливает активный редактор ячейки.
void setCellSelectionEnabled(boolean cellSelectionEnabled)
Устанавливает, разрешает ли эта таблица одновременное существование выбора столбца и выбора строки.
void setColumnModel(TableColumnModel columnModel)
Устанавливает модель столбцов для этой таблицы в columnModel и регистрируется для получения уведомлений о событиях от новой модели столбцов.
void setColumnSelectionAllowed(boolean columnSelectionAllowed)
Устанавливает, могут ли столбцы в этой модели выбираться.
void setColumnSelectionInterval(int index0, int index1)
Выбирает столбцы от index0 до index1 включительно.
void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
Устанавливает по умолчанию редактор ячейки, который будет использоваться, если редактор не был установлен в TableColumn.
void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
Устанавливает по умолчанию рендерер ячейки, который будет использоваться, если рендерер не был установлен в TableColumn.
void setDragEnabled(boolean b)
Включает или выключает автоматическую обработку перетаскивания.
final void setDropMode(DropMode dropMode)
Устанавливает режим опускания для этого компонента.
void setEditingColumn(int aColumn)
Устанавливает переменную editingColumn.
void setEditingRow(int aRow)
Устанавливает переменную editingRow.
void setFillsViewportHeight(boolean fillsViewportHeight)
Устанавливает, будет ли эта таблица всегда достаточно большой, чтобы заполнить высоту окружающего представления.
void setGridColor(Color gridColor)
Устанавливает цвет, используемый для рисования линий сетки, в gridColor и перерисовывает.
void setIntercellSpacing(Dimension intercellSpacing)
Устанавливает rowMargin и columnMargin — высоту и ширину пространства между ячейками — в intercellSpacing.
void setModel(TableModel dataModel)
Устанавливает модель данных для этой таблицы в dataModel и регистрируется у неё для получения уведомлений о событиях от новой модели данных.
void setPreferredScrollableViewportSize(Dimension size)
Устанавливает предпочтительный размер области просмотра для этой таблицы.
void setRowHeight(int rowHeight)
Устанавливает высоту всех ячеек в пикселях в rowHeight, перевалидирует и перерисовывает.
void setRowHeight(int row, int rowHeight)
Устанавливает высоту для row в rowHeight, перевалидирует и перерисовывает.
void setRowMargin(int rowMargin)
Устанавливает количество пустого пространства между ячейками в смежных строках.
void setRowSelectionAllowed(boolean rowSelectionAllowed)
Устанавливает, могут ли строки в этой модели выбираться.
void setRowSelectionInterval(int index0, int index1)
Выбирает строки от index0 до index1 включительно.
void setRowSorter(RowSorter<? extends TableModel> sorter)
Устанавливает RowSorter.
void setSelectionBackground(Color selectionBackground)
Устанавливает цвет фона для выделенных ячеек.
void setSelectionForeground(Color selectionForeground)
Устанавливает цвет переднего плана для выделенных ячеек.
void setSelectionMode(int selectionMode)
Устанавливает режим выбора таблицы, позволяющий только одиночные, одиночные непрерывные интервалы или несколько интервалов.
void setSelectionModel(ListSelectionModel selectionModel)
Устанавливает модель выбора строки для этой таблицы в selectionModel и регистрируется для получения уведомлений о событиях от новой модели выбора.
void setShowGrid(boolean showGrid)
Устанавливает, рисует ли таблица линии сетки вокруг ячеек.
void setShowHorizontalLines(boolean showHorizontalLines)
Устанавливает, рисует ли таблица горизонтальные линии между ячейками.
void setShowVerticalLines(boolean showVerticalLines)
Устанавливает, рисует ли таблица вертикальные линии между ячейками.
void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
Устанавливает, получают ли редакторы в этой таблице фокус клавиатуры при активации редактора в результате перенаправления событий клавиатуры JTable для ячейки.
void setTableHeader(JTableHeader tableHeader)
Устанавливает tableHeader, работающее с этим JTable, на newHeader.
void setUI(TableUI ui)
Устанавливает объект L&F, который отображает этот компонент и перерисовывает его.
void setUpdateSelectionOnSort(boolean update)
Указывает, нужно ли обновлять выбор после сортировки.
void setValueAt(Object aValue, int row, int column)
Устанавливает значение для ячейки в модели таблицы в row и column.
void sizeColumnsToFit(boolean lastColumnOnly)
Устарело.
С версии Swing 1.0.3 заменено на doLayout().
void sizeColumnsToFit(int resizingColumn)
Устарело с версии Java 2 platform v1.4.
void sorterChanged(RowSorterEvent e)
RowSorterListener уведомление о том, что RowSorter изменился каким-либо образом.
void tableChanged(TableModelEvent e)
Вызывается, когда TableModel этой таблицы генерирует TableModelEvent.
protected void unconfigureEnclosingScrollPane()
Отменяет действие configureEnclosingScrollPane, заменяя columnHeaderView окружающего полосы прокрутки на null.
void updateUI()
Уведомление от UIManager о том, что L&F изменился.
void valueChanged(ListSelectionEvent e)
Вызывается при изменении выбора строки — перерисовывает, чтобы показать новый выбор.

Methods declared in class 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

Methods declared in class 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

Methods declared in class 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

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание полей

AUTO_RESIZE_OFF

public static final int AUTO_RESIZE_OFF
Не изменять ширину столбцов автоматически; использовать горизонтальную полосу прокрутки вместо этого.
См. также:
  • Значения постоянных полей

AUTO_RESIZE_NEXT_COLUMN

public static final int AUTO_RESIZE_NEXT_COLUMN
При изменении размера столбца в пользовательском интерфейсе, изменять размер следующего столбца в противоположном направлении.
См. также:
  • Значения постоянных полей

AUTO_RESIZE_SUBSEQUENT_COLUMNS

public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
При изменении размера в пользовательском интерфейсе, изменять последующие столбцы, чтобы сохранить общую ширину; это поведение по умолчанию.
См. также:
  • Значения постоянных полей

AUTO_RESIZE_LAST_COLUMN

public static final int AUTO_RESIZE_LAST_COLUMN
Во всех операциях изменения размера изменять размер только последнего столбца.
См. также:
  • Значения постоянных полей

AUTO_RESIZE_ALL_COLUMNS

public static final int AUTO_RESIZE_ALL_COLUMNS
При всех операциях изменения размера пропорционально изменять размер всех столбцов.
См. также:
  • Значения постоянных полей

dataModel

protected TableModel dataModel
TableModel таблицы.

columnModel

protected TableColumnModel columnModel
TableColumnModel таблицы.

selectionModel

protected ListSelectionModel selectionModel
ListSelectionModel таблицы, используемая для отслеживания выделенных строк.

tableHeader

protected JTableHeader tableHeader
TableHeader, работающая с таблицей.

rowHeight

protected int rowHeight
Высота каждой строки в таблице в пикселях.

rowMargin

protected int rowMargin
Высота отступа между ячейками в каждой строке в пикселях.

gridColor

protected Color gridColor
Цвет сетки.

showHorizontalLines

protected boolean showHorizontalLines
Таблица рисует горизонтальные линии между ячейками, если showHorizontalLines равно true.

showVerticalLines

protected boolean showVerticalLines
Таблица рисует вертикальные линии между ячейками, если showVerticalLines равно true.

autoResizeMode

protected int autoResizeMode
Определяет, автоматически ли таблица изменяет ширину столбцов, чтобы занять всю ширину таблицы, и как она это делает.

autoCreateColumnsFromModel

protected boolean autoCreateColumnsFromModel
Если это true, таблица будет запрашивать TableModel для построения набора столбцов по умолчанию.

preferredViewportSize

protected Dimension preferredViewportSize
Используется интерфейсом Scrollable для определения начальной видимой области.

rowSelectionAllowed

protected boolean rowSelectionAllowed
True, если разрешено выделение строк в этой таблице.

cellSelectionEnabled

protected boolean cellSelectionEnabled
Устарело, начиная с Java 2 платформы v1.3. Пожалуйста, используйте свойство 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()
Создаёт таблицу по умолчанию, инициализированную моделью данных по умолчанию, моделью столбцов по умолчанию и моделью выделения по умолчанию.
См. также:
  • createDefaultDataModel()
  • createDefaultColumnModel()
  • createDefaultSelectionModel()

JTable

public JTable(TableModel dm)
Создаёт таблицу, инициализированную dm как модель данных, моделью столбцов по умолчанию и моделью выделения по умолчанию.
Параметры:
dm - модель данных для таблицы
См. также:
  • createDefaultColumnModel()
  • createDefaultSelectionModel()

JTable

public JTable(TableModel dm, TableColumnModel cm)
Создаёт таблицу, инициализированную dm как модель данных, cm как модель столбцов и модель выделения по умолчанию.
Параметры:
dm - модель данных для таблицы
cm - модель столбцов для таблицы
См. также:
  • createDefaultSelectionModel()

JTable

public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
Создаёт JTable, инициализированный с dm в качестве модели данных, cm в качестве модели столбцов и sm в качестве модели выделения. Если любой из параметров равен null, этот метод инициализирует таблицу с соответствующей моделью по умолчанию. Флаг autoCreateColumnsFromModel устанавливается в значение false, если cm не равен null, в противном случае он устанавливается в true, а модель столбцов заполняется подходящими TableColumns для столбцов в dm.
Parameters:
dm - модель данных для таблицы
cm - модель столбцов для таблицы
sm - модель выделения строк для таблицы
See Also:
  • createDefaultDataModel()
  • createDefaultColumnModel()
  • createDefaultSelectionModel()

JTable

public JTable(int numRows, int numColumns)
Создаёт JTable с numRows и numColumns пустых ячеек, используя DefaultTableModel. Столбцы будут иметь имена в формате "A", "B", "C" и т.д.
Parameters:
numRows - количество строк в таблице
numColumns - количество столбцов в таблице
See Also:
  • DefaultTableModel

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()

configureEnclosingScrollPane

protected void configureEnclosingScrollPane()
Если эта JTable является viewportView содержащей JScrollPane (обычная ситуация), настраивает эту ScrollPane, среди прочего, устанавливая tableHeader таблицы в качестве columnHeaderView области прокрутки. При добавлении JTable в JScrollPane обычным способом, используя new JScrollPane(myTable), вызывается addNotify в JTable (при добавлении таблицы в область просмотра). Метод JTable в свою очередь вызывает этот метод, который является защищённым, чтобы это стандартное поведение установки можно было переопределить в подклассе.
See Also:
  • addNotify()

removeNotify

public void removeNotify()
Вызывает метод unconfigureEnclosingScrollPane.
Overrides:
removeNotify в классе JComponent
See Also:
  • unconfigureEnclosingScrollPane()

unconfigureEnclosingScrollPane

protected void unconfigureEnclosingScrollPane()
Отменяет действие configureEnclosingScrollPane, заменив columnHeaderView содержащей области прокрутки на null. Метод JTable в свою очередь вызывает этот метод, который является защищённым, чтобы это стандартное поведение отмены установки можно было переопределить в подклассе.
Since:
1.3
See Also:
  • removeNotify()
  • configureEnclosingScrollPane()

createScrollPaneForTable

@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
Deprecated.
С версии Swing 1.0.2, заменено на 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()

getTableHeader

public JTableHeader getTableHeader()
Возвращает tableHeader, используемый этой JTable.
Returns:
используемое таблицей tableHeader
See Also:
  • setTableHeader(javax.swing.table.JTableHeader)

setRowHeight

@BeanProperty(description="The height of the specified row.") public void setRowHeight(int rowHeight)
Устанавливает высоту всех ячеек в пикселях на rowHeight, перевалидирует и перерисовывает. Высота ячеек будет равна высоте строки минус отступ строки.
Parameters:
rowHeight - новая высота строки
Throws:
IllegalArgumentException - если rowHeight меньше 1
See Also:
  • getRowHeight()

getRowHeight

public int getRowHeight()
Возвращает высоту строки таблицы в пикселях.
Returns:
высота строки таблицы в пикселях
See Also:
  • setRowHeight(int)

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()

getRowMargin

public int getRowMargin()
Возвращает отступ между ячейками в пикселях. Эквивалентно: getIntercellSpacing().height.
Returns:
количество пикселей между ячейками в строке
See Also:
  • setRowMargin(int)

установитьРасстояниеМеждуЯчейками

@BeanProperty(bound=false, description="The spacing between the cells, drawn in the background color of the JTable.") public void setIntercellSpacing(Dimension intercellSpacing)
Устанавливает rowMargin и columnMargin — высоту и ширину пространства между ячейками — в значение intercellSpacing.
Параметры:
intercellSpacing - Dimension, определяющий новую ширину и высоту между ячейками
См. также:
  • getIntercellSpacing()

получитьРасстояниеМеждуЯчейками

public Dimension getIntercellSpacing()
Возвращает горизонтальное и вертикальное расстояние между ячейками. Значение по умолчанию зависит от внешнего вида.
Возвращает:
горизонтальное и вертикальное расстояние между ячейками
См. также:
  • setIntercellSpacing(java.awt.Dimension)

установитьЦветСетки

@BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
Устанавливает цвет линий сетки в значение gridColor и перерисовывает таблицу. Цвет по умолчанию зависит от внешнего вида.
Параметры:
gridColor - новый цвет линий сетки
Исключения:
IllegalArgumentException - если gridColor имеет значение null
См. также:
  • getGridColor()

получитьЦветСетки

public Color getGridColor()
Возвращает цвет, используемый для рисования линий сетки. Цвет по умолчанию зависит от внешнего вида.
Возвращает:
цвет, используемый для рисования линий сетки
См. также:
  • setGridColor(java.awt.Color)

установитьОтображениеСетки

@BeanProperty(description="The color used to draw the grid lines.") public void setShowGrid(boolean showGrid)
Устанавливает, отображать ли линии сетки вокруг ячеек таблицы. Если значение showGrid равно true, линии отображаются; в противном случае — нет. Нет метода getShowGrid, так как это состояние хранится в двух переменных — showHorizontalLines и showVerticalLines — которые можно запросить независимо.
Параметры:
showGrid — true, если таблица должна отображать линии сетки
См. также:
  • setShowVerticalLines(boolean)
  • setShowHorizontalLines(boolean)

установитьОтображениеГоризонтальныхЛиний

@BeanProperty(description="Whether horizontal lines should be drawn in between the cells.") public void setShowHorizontalLines(boolean showHorizontalLines)
Устанавливает, отображать ли горизонтальные линии между ячейками таблицы. Если значение showHorizontalLines равно true, линии отображаются; в противном случае — нет.
Параметры:
showHorizontalLines — true, если таблица должна отображать горизонтальные линии
См. также:
  • getShowHorizontalLines()
  • setShowGrid(boolean)
  • setShowVerticalLines(boolean)

установитьОтображениеВертикальныхЛиний

@BeanProperty(description="Whether vertical lines should be drawn in between the cells.") public void setShowVerticalLines(boolean showVerticalLines)
Устанавливает, отображать ли вертикальные линии между ячейками таблицы. Если значение showVerticalLines равно true, линии отображаются; в противном случае — нет.
Параметры:
showVerticalLines — true, если таблица должна отображать вертикальные линии
См. также:
  • getShowVerticalLines()
  • setShowGrid(boolean)
  • setShowHorizontalLines(boolean)

получитьОтображениеГоризонтальныхЛиний

public boolean getShowHorizontalLines()
Возвращает true, если таблица отображает горизонтальные линии между ячейками, и false — если нет. Значение по умолчанию зависит от внешнего вида.
Возвращает:
true, если таблица отображает горизонтальные линии между ячейками, и false — если нет
См. также:
  • setShowHorizontalLines(boolean)

получитьОтображениеВертикальныхЛиний

public boolean getShowVerticalLines()
Возвращает true, если таблица отображает вертикальные линии между ячейками, и false — если нет. Значение по умолчанию зависит от внешнего вида.
Возвращает:
true, если таблица отображает вертикальные линии между ячейками, и false — если нет
См. также:
  • setShowVerticalLines(boolean)

установитьРежимАвтоматическогоИзмененияРазмеры

@BeanProperty(enumerationValues={"JTable.AUTO_RESIZE_OFF","JTable.AUTO_RESIZE_NEXT_COLUMN","JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS","JTable.AUTO_RESIZE_LAST_COLUMN","JTable.AUTO_RESIZE_ALL_COLUMNS"}, description="Whether the columns should adjust themselves automatically.") public void setAutoResizeMode(int mode)
Устанавливает режим автоматического изменения размера таблицы при изменении размера. Дополнительную информацию о работе различных режимов изменения размера можно найти в doLayout().
Параметры:
mode - Одно из 5 допустимых значений: AUTO_RESIZE_OFF, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_SUBSEQUENT_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_ALL_COLUMNS
См. также:
  • getAutoResizeMode()
  • doLayout()

получитьРежимАвтоматическогоИзмененияРазмеры

public int getAutoResizeMode()
Возвращает режим автоматического изменения размера таблицы. Режим по умолчанию — AUTO_RESIZE_SUBSEQUENT_COLUMNS.
Возвращает:
режим autoResizeMode таблицы
См. также:
  • setAutoResizeMode(int)
  • doLayout()

установитьАвтосозданиеСтолбцовИзМодели

@BeanProperty(description="Automatically populates the columnModel when a new TableModel is submitted.") public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
Устанавливает флаг autoCreateColumnsFromModel этой таблицы. Этот метод вызывает createDefaultColumnsFromModel, если значение autoCreateColumnsFromModel изменяется с false на true.
Параметры:
autoCreateColumnsFromModel — true, если таблица должна автоматически создавать столбцы
См. также:
  • getAutoCreateColumnsFromModel()
  • createDefaultColumnsFromModel()

получитьАвтосозданиеСтолбцовИзМодели

public boolean getAutoCreateColumnsFromModel()
Определяет, будет ли таблица создавать столбцы по умолчанию из модели. Если значение равно true, таблица очистит все существующие столбцы и создаст новые столбцы на основе новой модели. Кроме того, если событие в уведомлении tableChanged указывает на изменение всей таблицы, то столбцы будут перестроены. Значение по умолчанию — true.
Возвращает:
значение autoCreateColumnsFromModel таблицы
См. также:
  • setAutoCreateColumnsFromModel(boolean)
  • createDefaultColumnsFromModel()

создатьСтолбцыПоУмолчаниюИзМодели

public void createDefaultColumnsFromModel()
Создает столбцы по умолчанию для таблицы из модели данных, используя метод getColumnCount, определенный в интерфейсе TableModel.

Очищает все существующие столбцы перед созданием новых столбцов на основе данных из модели.

См. также:
  • getAutoCreateColumnsFromModel()

установитьОпределенныйРендерер

public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
Устанавливает рендерер ячеек по умолчанию, который будет использоваться, если рендерер не был установлен для TableColumn. Если рендерер является null, удаляет рендерер по умолчанию для этого класса столбца.
Параметры:
columnClass - устанавливает рендерер ячеек по умолчанию для этого класса столбца
renderer - рендерер ячеек по умолчанию для этого класса столбца
См. также:
  • getDefaultRenderer(java.lang.Class<?>)
  • setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor)

получитьОпределенныйРендерер

public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
Возвращает рендерер ячеек по умолчанию, который используется, когда рендерер не был установлен для TableColumn. При отрисовке ячеек рендерер извлекается из набора элементов в зависимости от класса ячеек в столбце. Если такого элемента для этого columnClass нет, метод возвращает элемент для самого конкретного суперкласса. JTable устанавливает элементы для Object, Number и Boolean, все из которых можно изменить или заменить.
Параметры:
columnClass - возвращает рендерер ячеек по умолчанию для этого класса столбца
Возвращает:
рендерер для этого класса столбца
См. также:
  • setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)
  • getColumnClass(int)

setDefaultEditor

public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
Устанавливает стандартный редактор ячеек, который будет использоваться, если редактор не был задан в TableColumn. Если редактирование в таблице или в конкретном столбце не требуется, используйте метод isCellEditable в интерфейсе TableModel, чтобы убедиться, что этот JTable не запустит редактор в этих столбцах. Если редактор null, удаляет стандартный редактор для этого класса столбца.
Parameters:
columnClass - установит стандартный редактор ячеек для этого класса столбца
editor - стандартный редактор ячеек, который будет использоваться для этого класса столбца
See Also:
  • TableModel.isCellEditable(int, int)
  • getDefaultEditor(java.lang.Class<?>)
  • setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)

getDefaultEditor

public TableCellEditor getDefaultEditor(Class<?> columnClass)
Возвращает редактор, используемый, когда редактор не задан в TableColumn. Во время редактирования ячеек редактор извлекается из Hashtable записей в соответствии с классом ячеек в столбце. Если для этого columnClass нет записи, метод возвращает запись для самого конкретного суперкласса. JTable устанавливает записи для Object, Number и Boolean, все из которых могут быть изменены или заменены.
Parameters:
columnClass - вернуть стандартный редактор ячеек для этого класса столбца
Returns:
стандартный редактор ячеек, используемый для этого класса столбца
See Also:
  • setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor)
  • getColumnClass(int)

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:
  • GraphicsEnvironment.isHeadless()
  • getDragEnabled()
  • JComponent.setTransferHandler(javax.swing.TransferHandler)
  • TransferHandler

getDragEnabled

public boolean getDragEnabled()
Возвращает, включена ли автоматическая обработка перетаскивания.
Returns:
значение свойства dragEnabled
Since:
1.4
See Also:
  • setDragEnabled(boolean)

setDropMode

public final void setDropMode(DropMode dropMode)
Устанавливает режим опускания для этого компонента. Для обратной совместимости значение по умолчанию для этого свойства равно DropMode.USE_SELECTION. Однако рекомендуется использовать один из других режимов для улучшения пользовательского опыта. DropMode.ON, например, предлагает аналогичное поведение, отображая элементы как выделенные, но не влияет на фактическое выделение в таблице.

JTable поддерживает следующие режимы опускания:

  • DropMode.USE_SELECTION
  • DropMode.ON
  • DropMode.INSERT
  • DropMode.INSERT_ROWS
  • DropMode.INSERT_COLS
  • DropMode.ON_OR_INSERT
  • DropMode.ON_OR_INSERT_ROWS
  • DropMode.ON_OR_INSERT_COLS

Режим опускания имеет смысл только в том случае, если у этого компонента есть TransferHandler, принимающий опускание.

Parameters:
dropMode - режим опускания, который нужно использовать
Throws:
IllegalArgumentException - если режим опускания не поддерживается или null
Since:
1.6
See Also:
  • getDropMode()
  • getDropLocation()
  • JComponent.setTransferHandler(javax.swing.TransferHandler)
  • TransferHandler

getDropMode

public final DropMode getDropMode()
Возвращает режим опускания для этого компонента.
Returns:
режим опускания для этого компонента
Since:
1.6
See Also:
  • setDropMode(javax.swing.DropMode)

getDropLocation

@BeanProperty(bound=false) public final JTable.DropLocation getDropLocation()
Возвращает расположение, которое этот компонент должен визуально обозначить как расположение опускания во время операции перетаскивания и опускания над компонентом, или null, если расположение в настоящее время не должно отображаться.

Этот метод не предназначен для запроса расположения опускания из TransferHandler, поскольку расположение опускания устанавливается только после того, как TransferHandler's canImport вернулись и позволили отобразить расположение.

При изменении этого свойства компонент генерирует событие изменения свойства с именем "dropLocation".

Returns:
место опускания
Since:
1.6
See Also:
  • setDropMode(javax.swing.DropMode)
  • TransferHandler.canImport(TransferHandler.TransferSupport)

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:
  • TableRowSorter

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)
Указывает, должно ли обновляться выделение после сортировки. Если true, при сортировке выделение сбрасывается таким образом, что выбранными остаются те же строки с точки зрения модели. Значение по умолчанию - true.
Parameters:
update - нужно ли обновлять выделение при сортировке
Since:
1.6

getUpdateSelectionOnSort

public boolean getUpdateSelectionOnSort()
Возвращает true, если выделение должно обновляться после сортировки.
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, это приведёт к неопределённому поведению.

Параметры:
sorter - RowSorter; null отключает сортировку
С версии:
1.6
См. также:
  • TableRowSorter

getRowSorter

public RowSorter<? extends TableModel> getRowSorter()
Возвращает объект, отвечающий за сортировку.
Возвращает:
объект, отвечающий за сортировку
С версии:
1.6

setSelectionMode

@BeanProperty(enumerationValues={"ListSelectionModel.SINGLE_SELECTION","ListSelectionModel.SINGLE_INTERVAL_SELECTION","ListSelectionModel.MULTIPLE_INTERVAL_SELECTION"}, description="The selection mode used by the row and column selection models.") public void setSelectionMode(int selectionMode)
Устанавливает режим выбора таблицы, позволяя только одиночный выбор, один непрерывный интервал или несколько интервалов.

Примечание: JTable предоставляет все методы для обработки выбора столбцов и строк. При установке состояний, таких как setSelectionMode, он не только обновляет режим для модели выбора строк, но и устанавливает аналогичные значения в модели выбора columnModel. Если вы хотите, чтобы модели выбора строк и столбцов работали в разных режимах, установите их обе непосредственно.

И модели выбора строк, и столбцов для JTable по умолчанию используют DefaultListSelectionModel, так что JTable работает так же, как JList. См. метод setSelectionMode в JList для подробной информации о режимах.

Параметры:
selectionMode - режим, используемый моделями выбора строк и столбцов
См. также:
  • JList.setSelectionMode(int)

setRowSelectionAllowed

@BeanProperty(visualUpdate=true, description="If true, an entire row is selected for each selected cell.") public void setRowSelectionAllowed(boolean rowSelectionAllowed)
Устанавливает, можно ли выбирать строки в этой модели.
Параметры:
rowSelectionAllowed - true, если эта модель позволит выбирать строки
См. также:
  • getRowSelectionAllowed()

getRowSelectionAllowed

public boolean getRowSelectionAllowed()
Возвращает true, если строки можно выбрать.
Возвращает:
true, если строки можно выбрать, иначе false
См. также:
  • setRowSelectionAllowed(boolean)

setColumnSelectionAllowed

@BeanProperty(visualUpdate=true, description="If true, an entire column is selected for each selected cell.") public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
Устанавливает, можно ли выбирать столбцы в этой модели.
Параметры:
columnSelectionAllowed - true, если эта модель позволит выбирать столбцы
См. также:
  • getColumnSelectionAllowed()

getColumnSelectionAllowed

public boolean getColumnSelectionAllowed()
Возвращает true, если столбцы можно выбрать.
Возвращает:
true, если столбцы можно выбрать, иначе false
См. также:
  • setColumnSelectionAllowed(boolean)

setCellSelectionEnabled

@BeanProperty(visualUpdate=true, description="Select a rectangular region of cells rather than rows or columns.") public void setCellSelectionEnabled(boolean cellSelectionEnabled)
Устанавливает, позволяет ли эта таблица одновременно выбирать как столбец, так и строку. При установке таблица обрабатывает пересечение моделей выбора строк и столбцов как выбранные ячейки. Переопределите isCellSelected, чтобы изменить это поведение по умолчанию. Этот метод эквивалентен установке как свойства rowSelectionAllowed, так и свойства columnSelectionAllowed columnModel на заданное значение.
Параметры:
cellSelectionEnabled - true, если разрешен одновременный выбор строк и столбцов
См. также:
  • getCellSelectionEnabled()
  • isCellSelected(int, int)

getCellSelectionEnabled

public boolean getCellSelectionEnabled()
Возвращает true, если включены как модели выбора строк, так и столбцов. Эквивалентно getRowSelectionAllowed() && getColumnSelectionAllowed().
Возвращает:
true, если включены как модели выбора строк, так и столбцов
См. также:
  • setCellSelectionEnabled(boolean)

selectAll

public void selectAll()
Выбирает все строки, столбцы и ячейки в таблице.

clearSelection

public void clearSelection()
Снимает выделение со всех выделенных столбцов и строк.

setRowSelectionInterval

public void setRowSelectionInterval(int index0, int index1)
Выбирает строки от index0 до index1 включительно.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getRowCount()-1]

setColumnSelectionInterval

public void setColumnSelectionInterval(int index0, int index1)
Выбирает столбцы от index0 до index1 включительно.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getColumnCount()-1]

addRowSelectionInterval

public void addRowSelectionInterval(int index0, int index1)
Добавляет строки от index0 до index1 включительно к текущему выделению.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getRowCount()-1]

addColumnSelectionInterval

public void addColumnSelectionInterval(int index0, int index1)
Добавляет столбцы от index0 до index1 включительно к текущему выделению.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getColumnCount()-1]

removeRowSelectionInterval

public void removeRowSelectionInterval(int index0, int index1)
Снимает выделение со строк от index0 до index1 включительно.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getRowCount()-1]

removeColumnSelectionInterval

public void removeColumnSelectionInterval(int index0, int index1)
Снимает выделение со столбцов от index0 до index1 включительно.
Параметры:
index0 - один конец интервала
index1 - другой конец интервала
Исключения:
IllegalArgumentException - если index0 или index1 находятся вне диапазона [0, getColumnCount()-1]

getSelectedRow

@BeanProperty(bound=false) public int getSelectedRow()
Возвращает индекс первой выделенной строки, -1, если ни одна строка не выделена.
Возвращает:
индекс первой выделенной строки

getSelectedColumn

@BeanProperty(bound=false) public int getSelectedColumn()
Возвращает индекс первого выделенного столбца, -1, если ни один столбец не выделен.
Возвращает:
индекс первого выделенного столбца

getSelectedRows

@BeanProperty(bound=false) public int[] getSelectedRows()
Возвращает индексы всех выделенных строк.
Возвращает:
массив целых чисел, содержащий индексы всех выделенных строк, или пустой массив, если ни одна строка не выбрана
См. также:
  • getSelectedRow()

getSelectedColumns

@BeanProperty(bound=false) public int[] getSelectedColumns()
Возвращает индексы всех выбранных столбцов.
Возвращает:
массив целых чисел, содержащий индексы всех выбранных столбцов, или пустой массив, если столбец не выбран
См. также:
  • getSelectedColumn()

getSelectedRowCount

@BeanProperty(bound=false) public int getSelectedRowCount()
Возвращает количество выбранных строк.
Возвращает:
количество выбранных строк, 0, если строки не выбраны

getSelectedColumnCount

@BeanProperty(bound=false) public int getSelectedColumnCount()
Возвращает количество выбранных столбцов.
Возвращает:
количество выбранных столбцов, 0, если столбцы не выбраны

isRowSelected

public boolean isRowSelected(int row)
Возвращает true, если указанный индекс находится в допустимом диапазоне строк, и строка в этом индексе выбрана.
Параметры:
row - строка в модели строк
Возвращает:
true, если row является допустимым индексом и строка в этом индексе выбрана (где 0 - первая строка)

isColumnSelected

public boolean isColumnSelected(int column)
Возвращает true, если указанный индекс находится в допустимом диапазоне столбцов, и столбец в этом индексе выбран.
Параметры:
column - столбец в модели столбцов
Возвращает:
true, если column является допустимым индексом и столбец в этом индексе выбран (где 0 - первый столбец)

isCellSelected

public boolean isCellSelected(int row, int column)
Возвращает true, если указанные индексы находятся в допустимом диапазоне строк и столбцов, и ячейка в указанном положении выбрана.
Параметры:
row - запрашиваемая строка
column - запрашиваемый столбец
Возвращает:
true, если row и column являются допустимыми индексами и ячейка в индексе (row, column) выбрана, где первая строка и первый столбец имеют индекс 0

changeSelection

public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
Обновляет модели выделения таблицы в зависимости от состояния двух флагов: toggle и extend. Большинство изменений выделения, являющихся результатом событий клавиатуры или мыши, полученных пользовательским интерфейсом, передаются через этот метод, чтобы поведение могло быть переопределено подклассом. Некоторые пользовательские интерфейсы могут потребовать больше функциональности, чем предоставляет этот метод, например, при манипулировании выделением несмежных элементов, и могут не вызывать этот метод для некоторых изменений выделения.

Эта реализация использует следующие соглашения:

  • toggle: false, extend: false. Очистить предыдущее выделение и убедиться, что новая ячейка выбрана.
  • toggle: false, extend: true. Расширить предыдущее выделение от якоря до указанной ячейки, очистив все другие выделения.
  • toggle: true, extend: false. Если указанная ячейка выбрана, снять выделение. Если она не выбрана, выбрать её.
  • toggle: true, extend: true. Применить состояние выделения якоря ко всем ячейкам между ним и указанной ячейкой.
Параметры:
rowIndex - влияет на выделение в row
columnIndex - влияет на выделение в column
toggle - см. описание выше
extend - если true, расширить текущее выделение
С:
1.3

getSelectionForeground

public Color getSelectionForeground()
Возвращает цвет переднего плана для выделенных ячеек.
Возвращает:
объект Color для свойства foreground
См. также:
  • setSelectionForeground(java.awt.Color)
  • setSelectionBackground(java.awt.Color)

setSelectionForeground

@BeanProperty(description="A default foreground color for selected cells.") public void setSelectionForeground(Color selectionForeground)
Устанавливает цвет переднего плана для выделенных ячеек. Компоненты отображения ячеек могут использовать этот цвет для отображения текста и графики для выделенных ячеек.

Значение по умолчанию этого свойства определяется реализацией внешнего вида.

Это свойство, связанное с JavaBeans.

Параметры:
selectionForeground - используемый Color для переднего плана выделенных элементов списка
См. также:
  • getSelectionForeground()
  • setSelectionBackground(java.awt.Color)
  • JComponent.setForeground(java.awt.Color)
  • JComponent.setBackground(java.awt.Color)
  • JComponent.setFont(java.awt.Font)

getSelectionBackground

public Color getSelectionBackground()
Возвращает цвет фона для выделенных ячеек.
Возвращает:
используемый Color для фона выделенных элементов списка
См. также:
  • setSelectionBackground(java.awt.Color)
  • setSelectionForeground(java.awt.Color)

setSelectionBackground

@BeanProperty(description="A default background color for selected cells.") public void setSelectionBackground(Color selectionBackground)
Устанавливает цвет фона для выделенных ячеек. Компоненты отображения ячеек могут использовать этот цвет для заполнения выделенных ячеек.

Значение по умолчанию этого свойства определяется реализацией внешнего вида.

Это свойство, связанное с JavaBeans.

Параметры:
selectionBackground - используемый Color для фона выделенных ячеек
См. также:
  • getSelectionBackground()
  • setSelectionForeground(java.awt.Color)
  • JComponent.setForeground(java.awt.Color)
  • JComponent.setBackground(java.awt.Color)
  • JComponent.setFont(java.awt.Font)

getColumn

public TableColumn getColumn(Object identifier)
Возвращает объект TableColumn для столбца в таблице, идентификатор которого равен identifier, при сравнении с использованием equals.
Параметры:
identifier - объект идентификатора
Возвращает:
объект TableColumn, соответствующий идентификатору
Исключение:
IllegalArgumentException - если identifier является null или столбец с этим идентификатором отсутствует

convertColumnIndexToModel

public int convertColumnIndexToModel(int viewColumnIndex)
Преобразует индекс столбца в представлении в viewColumnIndex в индекс столбца в модели таблицы. Возвращает индекс соответствующего столбца в модели. Если viewColumnIndex меньше нуля, возвращает viewColumnIndex.
Параметры:
viewColumnIndex - индекс столбца в представлении
Возвращает:
индекс соответствующего столбца в модели
См. также:
  • convertColumnIndexToView(int)

convertColumnIndexToView

public int convertColumnIndexToView(int modelColumnIndex)
Преобразует индекс столбца в модели таблицы в modelColumnIndex в индекс столбца в представлении. Возвращает индекс соответствующего столбца в представлении; возвращает -1, если этот столбец не отображается. Если modelColumnIndex меньше нуля, возвращает modelColumnIndex.
Параметры:
modelColumnIndex - индекс столбца в модели
Возвращает:
индекс соответствующего столбца в представлении
См. также:
  • convertColumnIndexToModel(int)

convertRowIndexToView

public int convertRowIndexToView(int modelRowIndex)
Преобразует индекс строки в терминах TableModel в представление. Если содержимое модели не отсортировано, индексы модели и представления совпадают.
Параметры:
modelRowIndex - индекс строки в терминах модели
Возвращает:
индекс соответствующей строки в представлении, или -1, если строка не отображается
Исключение:
IndexOutOfBoundsException - если сортировка включена и передан индекс, выходящий за пределы количества строк TableModel
С:
1.6
См. также:
  • TableRowSorter

convertRowIndexToModel

public int convertRowIndexToModel(int viewRowIndex)
Преобразует индекс строки с точки зрения представления в базовый TableModel. Если содержимое модели не отсортировано, индексы модели и представления совпадают.
Parameters:
viewRowIndex - индекс строки в представлении
Returns:
индекс соответствующей строки в модели
Throws:
IndexOutOfBoundsException - если сортировка включена и передан индекс, выходящий за пределы диапазона JTable, определяемый методом getRowCount
Since:
1.6
See Also:
  • TableRowSorter
  • getRowCount()

getRowCount

@BeanProperty(bound=false) public int getRowCount()
Возвращает количество строк, которые могут быть показаны в JTable при неограниченном пространстве. Если указана RowSorter с фильтром, количество возвращаемых строк может отличаться от количества строк в базовой TableModel.
Returns:
количество строк, отображаемых в JTable
See Also:
  • getColumnCount()

getColumnCount

@BeanProperty(bound=false) public int getColumnCount()
Возвращает количество столбцов в модели столбцов. Обратите внимание, что это может отличаться от количества столбцов в модели таблицы.
Returns:
количество столбцов в таблице
See Also:
  • getRowCount()
  • removeColumn(javax.swing.table.TableColumn)

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. Это важное различие, поскольку при переупорядочивании столбцов пользователем столбец с заданным индексом в представлении изменится. При этом действия пользователя не влияют на порядок столбцов в модели.

Parameters:
row - строка, значение которой требуется получить
column - столбец, значение которого требуется получить
Returns:
значение объекта в указанной ячейке

setValueAt

public void setValueAt(Object aValue, int row, int column)
Устанавливает значение ячейки в модели таблицы по строке row и столбцу column.

Примечание: Столбец указан в порядке отображения в представлении таблицы, а не в порядке столбцов TableModel. Это важное различие, поскольку при переупорядочивании столбцов пользователем столбец с заданным индексом в представлении изменится. При этом действия пользователя не влияют на порядок столбцов в модели. aValue - новое значение.

Parameters:
aValue - новое значение
row - строка ячейки, которая будет изменена
column - столбец ячейки, которая будет изменена
See Also:
  • getValueAt(int, int)

isCellEditable

public boolean isCellEditable(int row, int column)
Возвращает true, если ячейка по строке row и столбцу column редактируема. В противном случае вызов setValueAt для ячейки не повлияет.

Примечание: Столбец указан в порядке отображения в представлении таблицы, а не в порядке столбцов TableModel. Это важное различие, поскольку при переупорядочивании столбцов пользователем столбец с заданным индексом в представлении изменится. При этом действия пользователя не влияют на порядок столбцов в модели.

Parameters:
row - строка, значение которой требуется получить
column - столбец, значение которого требуется получить
Returns:
true, если ячейка редактируема
See Also:
  • setValueAt(java.lang.Object, int, int)

addColumn

public void addColumn(TableColumn aColumn)
Добавляет aColumn в конец массива столбцов, хранящихся в модели столбцов этого JTable. Если имя столбца aColumn равно null, устанавливает имя столбца aColumn в значение, возвращаемое методом getModel().getColumnName().

Для добавления столбца в это JTable, чтобы отобразить modelColumn-й столбец данных в модели с заданным width, cellRenderer и cellEditor, можно использовать:


      addColumn(new TableColumn(modelColumn, width, cellRenderer, cellEditor));

  
[Любой из конструкторов TableColumn может быть использован вместо этого.] Номер столбца модели хранится внутри TableColumn и используется во время отрисовки и редактирования для поиска соответствующих значений данных в модели. Номер столбца модели не изменяется при переупорядочивании столбцов в представлении.
Parameters:
aColumn - добавляемый TableColumn
See Also:
  • removeColumn(javax.swing.table.TableColumn)

removeColumn

public void removeColumn(TableColumn aColumn)
Удаляет aColumn из массива столбцов этого JTable. Примечание: этот метод не удаляет столбец данных из модели; он только удаляет TableColumn, отвечавший за его отображение.
Parameters:
aColumn - удаляемый TableColumn
See Also:
  • addColumn(javax.swing.table.TableColumn)

moveColumn

public void moveColumn(int column, int targetColumn)
Перемещает столбец column в позицию, которую в данный момент занимает столбец targetColumn в представлении. Прежний столбец в позиции targetColumn смещается влево или вправо, чтобы освободить место.
Parameters:
column - индекс перемещаемого столбца
targetColumn - новый индекс столбца

columnAtPoint

public int columnAtPoint(Point point)
Возвращает индекс столбца, в котором point находится, или -1, если результат не находится в диапазоне [0, getColumnCount()-1].
Parameters:
point - интересующее местоположение
Returns:
индекс столбца, в котором point находится, или -1, если результат не находится в диапазоне [0, getColumnCount()-1]
See Also:
  • rowAtPoint(java.awt.Point)

rowAtPoint

public int rowAtPoint(Point point)
Возвращает индекс строки, в которой point находится, или -1, если результат не находится в диапазоне [0, getRowCount()-1].
Parameters:
point - интересующее местоположение
Returns:
индекс строки, в которой point находится, или -1, если результат не находится в диапазоне [0, getRowCount()-1]
See Also:
  • columnAtPoint(java.awt.Point)

getCellRect

public Rectangle getCellRect(int row, int column, boolean includeSpacing)
Возвращает прямоугольник для ячейки, расположенной на пересечении row и column. Если includeSpacing имеет значение true, возвращаемое значение содержит полную высоту и ширину указанной строки и столбца. Если значение false, возвращаемый прямоугольник смещен на величину межклеточного интервала, чтобы вернуть истинные границы компонента отрисовки или редактирования, как он будет задан во время отрисовки.

Если индекс столбца корректен, а индекс строки меньше нуля, метод возвращает прямоугольник с y и height значениями, установленными соответствующим образом, и x и width значениями, установленными в ноль. В общем случае, когда индексы строки или столбца указывают на ячейку за пределами соответствующего диапазона, метод возвращает прямоугольник, отображающий ближайший край ближайшей ячейки, которая находится в пределах диапазона таблицы. Когда оба индекса строки и столбца находятся вне диапазона, возвращаемый прямоугольник охватывает ближайшую точку ближайшей ячейки.

Во всех случаях, вычисления, использующие этот метод для вычисления результатов по одной оси, не завершаются ошибкой из-за аномалий в вычислениях по другой оси. Если ячейка недействительна, параметр includeSpacing игнорируется.

Parameters:
row - индекс строки, где расположена нужная ячейка
column - индекс столбца, где расположена нужная ячейка в отображении; он не обязательно совпадает с индексом столбца в модели данных таблицы; метод convertColumnIndexToView(int) может использоваться для преобразования индекса столбца модели данных в индекс столбца отображения
includeSpacing - если false, возвращаются истинные границы ячейки — вычисленные путём вычитания межклеточного интервала из высоты и ширины моделей столбца и строки
Returns:
прямоугольник, содержащий ячейку в расположении row,column
See Also:
  • getIntercellSpacing()

doLayout

public void doLayout()
Принудительно выполняет расположение строк и столбцов этой таблицы. Переопределено для того, чтобы столбцы можно было изменять размер в соответствии с изменением размера содержащего родительского элемента. Изменяет размер одного или нескольких столбцов в таблице таким образом, чтобы общая ширина всех столбцов этого JTable была равна ширине таблицы.

Перед началом макета метод получает resizingColumn tableHeader. Когда метод вызывается в результате изменения размера окружающего окна, resizingColumn является null. Это означает, что изменение размера произошло «вне» JTable, и изменение — или «дельта» — должно быть распределено по всем столбцам независимо от режима автоматического изменения размера этого JTable.

Если resizingColumn не является null, то это один из столбцов в таблице, который изменил размер, а не сама таблица. В этом случае режимы автоматического изменения размера определяют, как дополнительное (или недостаточное) пространство распределяется между доступными столбцами.

Режимы:

  • AUTO_RESIZE_OFF: Не выполнять автоматическую корректировку ширины столбца вообще. Использовать горизонтальную полосу прокрутки для размещения столбцов, когда их сумма превышает ширину Viewport. Если JTable не заключено в JScrollPane, это может привести к тому, что части таблицы станут невидимыми.
  • AUTO_RESIZE_NEXT_COLUMN: Используется только столбец после столбца, изменяющего размер. Это приводит к тому, что «граница» или разделитель между смежными ячейками могут быть независимо настроены.
  • AUTO_RESIZE_SUBSEQUENT_COLUMNS: Используются все столбцы после изменённого, чтобы поглотить изменения. Это поведение по умолчанию.
  • AUTO_RESIZE_LAST_COLUMN: Автоматически изменить размер только последнего столбца. Если границы последнего столбца препятствуют получению желаемого размера, установите ширину последнего столбца на соответствующее ограничение и больше не производите никаких настроек.
  • AUTO_RESIZE_ALL_COLUMNS: Распределить дельту среди всех столбцов в JTable, включая тот, который изменяется.

Примечание: Когда JTable вносит корректировки в ширины столбцов, он абсолютно соблюдает их минимальные и максимальные значения. Поэтому возможно, что даже после вызова этого метода общая ширина столбцов все еще не равна ширине таблицы. В этом случае JTable не переводит себя в режим AUTO_RESIZE_OFF, чтобы отобразить полосу прокрутки или нарушить другие обязательства текущего режима автоматического изменения размера — вместо этого он позволяет установить свои границы больше (или меньше), чем сумма минимальных или максимальных значений столбцов, что означает, что может не хватить места для отображения всех столбцов или столбцы не заполнят границы JTable. Соответственно, это приводит к обрезанию некоторых столбцов или области, нарисованной в цвете фона JTable во время рисования.

Механизм распределения дельты среди доступных столбцов реализован в частном методе в классе JTable:

   adjustSizes(long targetSize, final Resizable3 r, boolean inverse)
 
объяснение которого приведено в следующем разделе. Resizable3 — это частный интерфейс, который позволяет любой структуре данных, содержащей коллекцию элементов с размером, предпочтительным размером, максимальным и минимальным размером, манипулировать своими элементами с помощью алгоритма.

Распределение дельты

Обзор

Назовите «ДЕЛЬТА» разницу между целевым размером и суммой предпочтительных размеров элементов в r. Индивидуальные размеры вычисляются путем взятия исходных предпочтительных размеров и добавления доли ДЕЛЬТЫ — эта доля основана на том, насколько каждый предпочтительный размер далек от своего ограничивающего значения (минимального или максимального).

Определение

Назовите отдельные ограничения min[i], max[i] и pref[i].

Назовите их суммы: MIN, MAX и PREF.

Каждый новый размер будет рассчитан по формуле:

          size[i] = pref[i] + delta[i]
 
где каждая индивидуальная дельта[i] рассчитывается по формуле:

Если (ДЕЛЬТА < 0), мы находимся в режиме уменьшения, где:

                        DELTA
          delta[i] = ------------ * (pref[i] - min[i])
                     (PREF - MIN)
 
Если (ДЕЛЬТА > 0), мы находимся в режиме увеличения, где:
                        DELTA
          delta[i] = ------------ * (max[i] - pref[i])
                      (MAX - PREF)
 

Общий эффект заключается в том, что общий размер перемещается на ту же долю, k, к общему минимуму или максимуму, и эта доля гарантирует размещение необходимого пространства, ДЕЛЬТА.

Детали

Примитивное вычисление представленных здесь формул было бы подвержено совокупным ошибкам округления, вызванным выполнением этой операции с конечной точностью (используя целые числа). Для решения этой проблемы множитель умножения выше постоянно пересчитывается, и это учитывает ошибки округления в предыдущих итерациях. Результатом является алгоритм, который генерирует набор целых чисел, чья сумма точно равна предоставленной targetSize, и делает это, равномерно распределяя ошибки округления по заданным элементам.

Когда значения MAX и MIN достигаются

Когда targetSize находится за пределами диапазона [MIN, MAX], алгоритм устанавливает все размеры на соответствующее ограничивающее значение (максимум или минимум).

Overrides:
doLayout в классе Container
See Also:
  • LayoutManager.layoutContainer(java.awt.Container)
  • Container.setLayout(java.awt.LayoutManager)
  • Container.validate()

sizeColumnsToFit

@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
Устарело.
Начиная с версии Swing 1.0.3, заменено на doLayout().
Изменяет размер столбцов таблицы в соответствии с доступным пространством.
Parameters:
lastColumnOnly - определяет, следует ли изменять размер только последнего столбца
See Also:
  • doLayout()

sizeColumnsToFit

public void sizeColumnsToFit(int resizingColumn)
Устарело с платформы Java 2 v1.4. Пожалуйста, используйте метод doLayout() вместо него.
Parameters:
resizingColumn - столбец, изменение размера которого потребовало этой корректировки, или -1, если такого столбца нет
See Also:
  • doLayout()

getToolTipText

public String getToolTipText(MouseEvent event)
Переопределяет метод JComponent getToolTipText, чтобы разрешить использование подсказок рендерера, если для него задан текст.

Примечание: Чтобы JTable корректно отображал всплывающие подсказки своих рендереров, JTable должен быть зарегистрированным компонентом в ToolTipManager. Это делается автоматически в initializeLocalVars, но если в какой-то момент JTable будет сказано setToolTipText(null), он отрегистрирует компонент таблицы, и подсказки от рендереров больше не будут отображаться.

Overrides:
getToolTipText в классе JComponent
Parameters:
event - MouseEvent, инициировавший отображение ToolTip
Returns:
строка, содержащая всплывающую подсказку
See Also:
  • JComponent.getToolTipText()

setSurrendersFocusOnKeystroke

public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
Устанавливает, получают ли редакторы в этом JTable фокус клавиатуры, когда редактор активируется в результате того, что JTable пересылает события клавиатуры для ячейки. По умолчанию это свойство имеет значение false, и JTable сохраняет фокус, если ячейка не была нажата.
Parameters:
surrendersFocusOnKeystroke - true, если редактор должен получить фокус, когда нажатие клавиш активирует редактор
Since:
1.4
See Also:
  • getSurrendersFocusOnKeystroke()

getSurrendersFocusOnKeystroke

public boolean getSurrendersFocusOnKeystroke()
Возвращает true, если редактор должен получить фокус, когда нажатия клавиш вызывают активацию редактора
Возвращает:
true, если редактор должен получить фокус, когда нажатия клавиш вызывают активацию редактора
Since:
1.4
См. также:
  • setSurrendersFocusOnKeystroke(boolean)

editCellAt

public boolean editCellAt(int row, int column)
Программно начинает редактирование ячейки по координатам row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих индексах редактируема. Обратите внимание, что это метод-обёртка для editCellAt(int, int, null).
Параметры:
row - строка для редактирования
column - столбец для редактирования
Возвращает:
false, если по какой-либо причине ячейку нельзя отредактировать или если индексы неверны

editCellAt

public boolean editCellAt(int row, int column, EventObject e)
Программно начинает редактирование ячейки по координатам row и column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих индексах редактируема. Чтобы предотвратить редактирование определённой таблицы, столбца или значения ячейки, верните false из метода isCellEditable в интерфейсе TableModel.
Параметры:
row - строка для редактирования
column - столбец для редактирования
e - событие для передачи в shouldSelectCell; обратите внимание, что начиная с Java 2 платформы v1.2, вызов shouldSelectCell больше не выполняется
Возвращает:
false, если по какой-либо причине ячейку нельзя отредактировать или если индексы неверны

isEditing

@BeanProperty(bound=false) public boolean isEditing()
Возвращает true, если ячейка находится в процессе редактирования.
Возвращает:
true, если таблица находится в процессе редактирования ячейки
См. также:
  • editingColumn
  • editingRow

getEditorComponent

@BeanProperty(bound=false) public Component getEditorComponent()
Возвращает компонент, обрабатывающий сеанс редактирования. Если ничего не редактируется, возвращает null.
Возвращает:
Компонент, обрабатывающий сеанс редактирования

getEditingColumn

public int getEditingColumn()
Возвращает индекс столбца, содержащего ячейку, которая в данный момент редактируется. Если ничего не редактируется, возвращает -1.
Возвращает:
индекс столбца, содержащего ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
См. также:
  • editingRow

getEditingRow

public int getEditingRow()
Возвращает индекс строки, содержащей ячейку, которая в данный момент редактируется. Если ничего не редактируется, возвращает -1.
Возвращает:
индекс строки, содержащей ячейку, которая в данный момент редактируется; возвращает -1, если ничего не редактируется
См. также:
  • editingColumn

getUI

public TableUI getUI()
Возвращает объект L&F, который отображает этот компонент.
Overrides:
getUI в классе JComponent
Возвращает:
объект L&F, который отображает этот компонент

setUI

@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component's LookAndFeel.") public void setUI(TableUI ui)
Устанавливает объект L&F, который отображает этот компонент, и перерисовывает его.
Параметры:
ui - объект TableUI L&F
См. также:
  • UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
Уведомление от UIManager о том, что L&F изменился. Заменяет текущий объект UI последней версией из UIManager.
Overrides:
updateUI в классе JComponent
См. также:
  • JComponent.updateUI()

getUIClassID

@BeanProperty(bound=false) public String getUIClassID()
Возвращает суффикс, используемый для построения имени класса L&F, используемого для отображения этого компонента.
Overrides:
getUIClassID в классе JComponent
Возвращает:
строку "TableUI"
См. также:
  • JComponent.getUIClassID()
  • UIDefaults.getUI(javax.swing.JComponent)

setModel

@BeanProperty(description="The model that is the source of the data for this view.") public void setModel(TableModel dataModel)
Устанавливает модель данных для этой таблицы в dataModel и регистрирует её для уведомлений о событиях от новой модели данных.
Параметры:
dataModel - новый источник данных для этой таблицы
Исключения:
IllegalArgumentException - если dataModel является null
См. также:
  • getModel()

getModel

public TableModel getModel()
Возвращает TableModel, предоставляющий данные, отображаемые в этой JTable.
Возвращает:
TableModel, предоставляющий данные, отображаемые в этой JTable
См. также:
  • setModel(javax.swing.table.TableModel)

setColumnModel

@BeanProperty(description="The object governing the way columns appear in the view.") public void setColumnModel(TableColumnModel columnModel)
Устанавливает модель столбцов для этой таблицы в columnModel и регистрируется для получения уведомлений о событиях от новой модели столбцов. Также устанавливает модель столбцов для JTableHeader в columnModel.
Параметры:
columnModel - новый источник данных для этой таблицы
Исключения:
IllegalArgumentException - если columnModel является null
См. также:
  • getColumnModel()

getColumnModel

public TableColumnModel getColumnModel()
Возвращает TableColumnModel, содержащий всю информацию о столбцах этой таблицы.
Возвращает:
объект, предоставляющий состояние столбцов таблицы
См. также:
  • setColumnModel(javax.swing.table.TableColumnModel)

setSelectionModel

@BeanProperty(description="The selection model for rows.") public void setSelectionModel(ListSelectionModel selectionModel)
Устанавливает модель выделения строк для этой таблицы в selectionModel и регистрируется для получения уведомлений о событиях от новой модели выделения.
Параметры:
selectionModel - новая модель выделения
Исключения:
IllegalArgumentException - если selectionModel является null
См. также:
  • getSelectionModel()

getSelectionModel

public ListSelectionModel getSelectionModel()
Возвращает ListSelectionModel, используемый для сохранения состояния выделения строк.
Возвращает:
объект, предоставляющий состояние выделения строк, null, если выделение строк не разрешено
См. также:
  • setSelectionModel(javax.swing.ListSelectionModel)

sorterChanged

public void sorterChanged(RowSorterEvent e)
RowSorterListener уведомление о том, что RowSorter изменился каким-либо образом.
Specified by:
sorterChanged в интерфейсе RowSorterListener
Параметры:
e - RowSorterEvent, описывающий изменение
Исключения:
NullPointerException - если e является null
Since:
1.6
END_OF_DOCUMENT_MARKER

tableChanged

public void tableChanged(TableModelEvent e)
Вызывается, когда в этой таблице TableModel генерирует TableModelEvent. TableModelEvent должен быть построен в системе координат модели; соответствующее отображение в систему координат представления выполняется этой JTable при получении события.

Код приложения не будет использовать эти методы напрямую, они используются внутренне JTable.

Обратите внимание, что начиная с версии 1.3, этот метод очищает выделение, если оно есть.

Specified by:
tableChanged в интерфейсе TableModelListener
Parameters:
e - a TableModelEvent для уведомления слушателя о том, что модель таблицы изменилась

columnAdded

public void columnAdded(TableColumnModelEvent e)
Вызывается при добавлении столбца в модель столбцов таблицы.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
columnAdded в интерфейсе TableColumnModelListener
Parameters:
e - a TableColumnModelEvent
See Also:
  • TableColumnModelListener

columnRemoved

public void columnRemoved(TableColumnModelEvent e)
Вызывается при удалении столбца из модели столбцов таблицы.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
columnRemoved в интерфейсе TableColumnModelListener
Parameters:
e - a TableColumnModelEvent
See Also:
  • TableColumnModelListener

columnMoved

public void columnMoved(TableColumnModelEvent e)
Вызывается при изменении расположения столбца. Если ячейка находится в режиме редактирования, то редактирование останавливается, и ячейка перерисовывается.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
columnMoved в интерфейсе TableColumnModelListener
Parameters:
e - полученное событие
See Also:
  • TableColumnModelListener

columnMarginChanged

public void columnMarginChanged(ChangeEvent e)
Вызывается, когда столбец перемещен из-за изменения отступа. Если ячейка находится в режиме редактирования, то редактирование останавливается, и ячейка перерисовывается.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
columnMarginChanged в интерфейсе TableColumnModelListener
Parameters:
e - полученное событие
See Also:
  • TableColumnModelListener

columnSelectionChanged

public void columnSelectionChanged(ListSelectionEvent e)
Вызывается при изменении модели выделения TableColumnModel.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
columnSelectionChanged в интерфейсе TableColumnModelListener
Parameters:
e - полученное событие
See Also:
  • TableColumnModelListener

valueChanged

public void valueChanged(ListSelectionEvent e)
Вызывается при изменении выделения строк - перерисовывается, чтобы показать новое выделение.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
valueChanged в интерфейсе ListSelectionListener
Parameters:
e - полученное событие
See Also:
  • ListSelectionListener

editingStopped

public void editingStopped(ChangeEvent e)
Вызывается при завершении редактирования. Изменения сохраняются, и редактор удаляется.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
editingStopped в интерфейсе CellEditorListener
Parameters:
e - полученное событие
See Also:
  • CellEditorListener

editingCanceled

public void editingCanceled(ChangeEvent e)
Вызывается при отмене редактирования. Объект редактора удаляется, и ячейка перерисовывается заново.

Код приложения не будет использовать эти методы напрямую, они используются внутренне классом JTable.

Specified by:
editingCanceled в интерфейсе CellEditorListener
Parameters:
e - полученное событие
See Also:
  • CellEditorListener

setPreferredScrollableViewportSize

@BeanProperty(bound=false, description="The preferred size of the viewport.") public void setPreferredScrollableViewportSize(Dimension size)
Устанавливает предпочтительный размер области просмотра для этой таблицы.
Parameters:
size - объект Dimension, определяющий preferredSize JViewport, чьё представление — эта таблица
See Also:
  • Scrollable.getPreferredScrollableViewportSize()

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
Возвращает предпочтительный размер области просмотра для этой таблицы.
Specified by:
getPreferredScrollableViewportSize в интерфейсе Scrollable
Returns:
объект Dimension, содержащий preferredSize JViewport, отображающей эту таблицу
See Also:
  • Scrollable.getPreferredScrollableViewportSize()

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает приращение прокрутки (в пикселях), которое полностью отображает новую строку или столбец (в зависимости от ориентации).

Этот метод вызывается каждый раз, когда пользователь запрашивает прокрутку на единицу.

Specified by:
getScrollableUnitIncrement в интерфейсе Scrollable
Parameters:
visibleRect - область представления, видимая в области просмотра
orientation - либо SwingConstants.VERTICAL, либо SwingConstants.HORIZONTAL
direction - меньше нуля для прокрутки вверх/влево, больше нуля для вниз/вправо
Returns:
приращение "единицы" для прокрутки в указанном направлении
See Also:
  • Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает visibleRect.height или visibleRect.width, в зависимости от ориентации этой таблицы. Обратите внимание, что начиная со Swing 1.1.1 (Java 2 v 1.2.2) возвращаемое значение будет гарантировать, что область просмотра будет четко выровнена по границе строки.
Specified by:
getScrollableBlockIncrement в интерфейсе Scrollable
Parameters:
visibleRect - Область представления, видимая в области просмотра
orientation - либо SwingConstants.VERTICAL, либо SwingConstants.HORIZONTAL.
direction - Меньше нуля для прокрутки вверх/влево, больше нуля для вниз/вправо.
Returns:
visibleRect.height или visibleRect.width в зависимости от ориентации
See Also:
  • Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)

getScrollableTracksViewportWidth

@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
Возвращает false, если autoResizeMode установлено в AUTO_RESIZE_OFF, что указывает на то, что ширина области просмотра не определяет ширину таблицы. В противном случае возвращает true.
Specified by:
getScrollableTracksViewportWidth в интерфейсе Scrollable
Returns:
false, если autoResizeMode установлено в AUTO_RESIZE_OFF, в противном случае возвращает true
See Also:
  • Scrollable.getScrollableTracksViewportWidth()

getScrollableTracksViewportHeight

@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
Возвращает false, чтобы указать, что высота области просмотра не определяет высоту таблицы, если getFillsViewportHeight является true и предпочтительная высота таблицы меньше высоты области просмотра.
Specified by:
getScrollableTracksViewportHeight в интерфейсе Scrollable
Returns:
false, если getFillsViewportHeight является true и таблица должна быть растянута, чтобы заполнить область просмотра
See Also:
  • Scrollable.getScrollableTracksViewportHeight()
  • setFillsViewportHeight(boolean)
  • getFillsViewportHeight()

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.
Parameters:
fillsViewportHeight - всегда ли эта таблица увеличивается до такой степени, чтобы заполнить высоту окружающей области просмотра
Since:
1.6
See Also:
  • getFillsViewportHeight()
  • getScrollableTracksViewportHeight()

getFillsViewportHeight

public boolean getFillsViewportHeight()
Возвращает, всегда ли эта таблица увеличивается до такой степени, чтобы заполнить высоту окружающей области просмотра.
Returns:
всегда ли эта таблица увеличивается до такой степени, чтобы заполнить высоту окружающей области просмотра
Since:
1.6
See Also:
  • setFillsViewportHeight(boolean)

createDefaultRenderers

protected void createDefaultRenderers()
Создаёт стандартные рендереры ячеек для объектов, чисел, чисел с плавающей точкой, дат, булевых значений и значков.
See Also:
  • DefaultTableCellRenderer

createDefaultEditors

protected void createDefaultEditors()
Создаёт стандартные редакторы ячеек для объектов, чисел и булевых значений.
See Also:
  • DefaultCellEditor

initializeLocalVars

protected void initializeLocalVars()
Инициализирует свойства таблицы их значениями по умолчанию.

createDefaultDataModel

protected TableModel createDefaultDataModel()
Возвращает стандартную модель таблицы, которая является DefaultTableModel. Подкласс может переопределить этот метод, чтобы вернуть другую модель таблицы.
Returns:
стандартная модель таблицы
See Also:
  • DefaultTableModel

createDefaultColumnModel

protected TableColumnModel createDefaultColumnModel()
Возвращает стандартную модель столбцов, которая является DefaultTableColumnModel. Подкласс может переопределить этот метод, чтобы вернуть другую модель столбцов.
Returns:
стандартная модель столбцов
See Also:
  • DefaultTableColumnModel

createDefaultSelectionModel

protected ListSelectionModel createDefaultSelectionModel()
Возвращает стандартную модель выделения, которая является DefaultListSelectionModel. Подкласс может переопределить этот метод, чтобы вернуть другую модель выделения.
Returns:
стандартная модель выделения
See Also:
  • DefaultListSelectionModel

createDefaultTableHeader

protected JTableHeader createDefaultTableHeader()
Возвращает стандартный заголовок таблицы, который является JTableHeader. Подкласс может переопределить этот метод, чтобы вернуть другой заголовок таблицы.
Returns:
стандартный заголовок таблицы
See Also:
  • JTableHeader

resizeAndRepaint

protected void resizeAndRepaint()
Эквивалентно revalidate, за которым следует repaint.

getCellEditor

public TableCellEditor getCellEditor()
Возвращает активный редактор ячейки, который является null, если таблица в данный момент не редактируется.
Returns:
редактор TableCellEditor, выполняющий редактирование, или null, если таблица в данный момент не редактируется.
See Also:
  • cellEditor
  • getCellEditor(int, int)

setCellEditor

@BeanProperty(description="The table's active cell editor.") public void setCellEditor(TableCellEditor anEditor)
Устанавливает активный редактор ячейки.
Parameters:
anEditor - активный редактор ячейки
See Also:
  • cellEditor

setEditingColumn

public void setEditingColumn(int aColumn)
Устанавливает переменную editingColumn.
Parameters:
aColumn - столбец ячейки, подлежащей редактированию
See Also:
  • editingColumn

setEditingRow

public void setEditingRow(int aRow)
Устанавливает переменную editingRow.
Parameters:
aRow - строка ячейки, подлежащей редактированию
See Also:
  • editingRow

getCellRenderer

public TableCellRenderer getCellRenderer(int row, int column)
Возвращает подходящий рендерер для ячейки, заданной этой строкой и столбцом. Если у TableColumn для этого столбца есть рендерер, не равный null, возвращает его. Если нет, находит класс данных в этом столбце (используя getColumnClass) и возвращает рендерер по умолчанию для этого типа данных.

Примечание: В пакете table внутренние реализации всегда используют этот метод для предоставления рендереров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.

Parameters:
row - строка ячейки для отрисовки, где 0 — первая строка
column - столбец ячейки для отрисовки, где 0 — первый столбец
Returns:
назначенный рендерер; если null возвращает рендерер по умолчанию для этого типа объекта
See Also:
  • DefaultTableCellRenderer
  • TableColumn.setCellRenderer(javax.swing.table.TableCellRenderer)
  • setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)

prepareRenderer

public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
Подготавливает рендерер, запрашивая у модели данных значение и состояние выделения ячейки в row, column. Возвращает компонент (может быть Component или JComponent) под местоположением события.

Во время печати этот метод настраивает рендерер без указания выделения или фокуса, чтобы предотвратить их отображение в печатном выходе. Чтобы выполнить другие кастомизации, основанные на том, печатается ли таблица или нет, вы можете проверить значение JComponent.isPaintingForPrint(), либо здесь, либо в пользовательских рендерерах.

Примечание: В пакете table внутренние реализации всегда используют этот метод для подготовки рендереров, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.

Parameters:
renderer - TableCellRenderer для подготовки
row - строка ячейки для отрисовки, где 0 — первая строка
column - столбец ячейки для отрисовки, где 0 — первый столбец
Returns:
Component под местоположением события

getCellEditor

public TableCellEditor getCellEditor(int row, int column)
Возвращает подходящий редактор для ячейки, заданной row и column. Если для данного столбца определен не нулевой редактор, возвращается он. В противном случае, определяется класс данных в этом столбце (используя getColumnClass) и возвращается стандартный редактор для этого типа данных.

Примечание: В пакете таблиц внутренние реализации всегда используют этот метод для предоставления редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.

Параметры:
row - строка редактируемой ячейки, где 0 - первая строка
column - столбец редактируемой ячейки, где 0 - первый столбец
Возвращает:
редактор для этой ячейки; если null возвращает стандартный редактор для этого типа ячейки
См. также:
  • DefaultCellEditor

prepareEditor

public Component prepareEditor(TableCellEditor editor, int row, int column)
Подготавливает редактор, запрашивая у модели данных значение и состояние выбора ячейки по координатам row, column.

Примечание: В пакете таблиц внутренние реализации всегда используют этот метод для подготовки редакторов, чтобы это поведение по умолчанию можно было безопасно переопределить подклассом.

Параметры:
editor - редактор, который нужно подготовить
row - строка редактируемой ячейки, где 0 - первая строка
column - столбец редактируемой ячейки, где 0 - первый столбец
Возвращает:
редактируемую Component

removeEditor

public void removeEditor()
Удаляет объект редактора и освобождает занимаемое им место для рендеринга ячеек.

paramString

protected String paramString()
Возвращает строковое представление этой таблицы. Этот метод предназначен только для отладки, и содержимое и формат возвращаемой строки могут различаться в разных реализациях. Возвращаемая строка может быть пустой, но не null.
Переопределяет:
paramString в классе JComponent
Возвращает:
строковое представление этой таблицы

print

public boolean print() throws PrinterException
Удобный метод, который отображает диалог печати, а затем печатает эту JTable в режиме PrintMode.FIT_WIDTH без заголовка и подвала. Во время печати будет отображаться модальный диалог прогресса с опцией прерывания.

Примечание: в безголовом режиме диалоги не отображаются, и печать выполняется на стандартном принтере.

Возвращает:
true, если печать не отменена пользователем
Исключения:
PrinterException - если в системе печати произошла ошибка, из-за которой работа была прервана
См. также:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)

print

public boolean print(JTable.PrintMode printMode) throws PrinterException
Удобный метод, который отображает диалог печати, а затем печатает эту JTable в заданном режиме печати без заголовка и подвала. Во время печати будет отображаться модальный диалог прогресса с опцией прерывания.

Примечание: в безголовом режиме диалоги не отображаются, и печать выполняется на стандартном принтере.

Параметры:
printMode - режим печати, который должен использовать печатный объект
Возвращает:
true, если печать не отменена пользователем
Исключения:
PrinterException - если в системе печати произошла ошибка, из-за которой работа была прервана
См. также:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)

print

public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
Удобный метод, который отображает диалог печати, а затем печатает эту JTable в заданном режиме печати со строками заголовка и подвала. Во время печати будет отображаться модальный диалог прогресса с опцией прерывания.

Примечание: в безголовом режиме диалоги не отображаются, и печать выполняется на стандартном принтере.

Параметры:
printMode - режим печати, который должен использовать печатный объект
headerFormat - MessageFormat, определяющий текст для заголовка, или null для отсутствия
footerFormat - MessageFormat, определяющий текст для подвала, или null для отсутствия
Возвращает:
true, если печать не отменена пользователем
Исключения:
PrinterException - если в системе печати произошла ошибка, из-за которой работа была прервана
См. также:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)

print

public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException
Печатает эту таблицу, как указано в методе print, используя стандартный принтер.
Параметры:
printMode - режим печати, который должен использовать печатный объект
headerFormat - MessageFormat, определяющий текст для заголовка, или null для отсутствия
footerFormat - MessageFormat, определяющий текст для подвала, или null для отсутствия
showPrintDialog - отображать ли диалог печати
attr - набор атрибутов печати, или null для отсутствия
interactive - печатать в интерактивном режиме
Возвращает:
true, если печать не отменена пользователем
Исключения:
HeadlessException - если методу нужно показать диалог печати или выполнить интерактивную печать, и GraphicsEnvironment.isHeadless вернул true
PrinterException - если в системе печати произошла ошибка, из-за которой работа была прервана
См. также:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)

print

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
PrinterException - если в системе печати произошла ошибка, из-за которой задание прервано
Since:
1.6
See Also:
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
  • GraphicsEnvironment.isHeadless()

getPrintable

public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Возвращает Printable для печати этой таблицы JTable.

Этот метод предназначен для тех, кто хочет настроить реализацию Printable по умолчанию, используемую методами JTable's print. Разработчики, которые просто хотят распечатать таблицу, должны использовать эти методы напрямую.

Printable может быть запрошен в одном из двух режимов печати. В обоих режимах строки таблицы естественным образом распространяются по нескольким страницам, размещая как можно больше строк на каждой странице. PrintMode.NORMAL указывает, что таблица печатается в её текущем размере. В этом режиме может потребоваться распределение столбцов по страницам аналогично строкам. При необходимости столбцы распределяются в порядке, согласованном с ComponentOrientation таблицы. PrintMode.FIT_WIDTH указывает, что выход должен быть уменьшен в масштабе, если необходимо, чтобы весь столбец таблицы (и все столбцы) размещались на каждой странице. Ширина и высота масштабируются одинаково, сохраняя соотношение сторон вывода.

Printable размещает часть таблицы на каждой странице с соответствующей частью заголовка таблицы, если она есть.

Текст заголовка и подвала можно добавить в вывод, предоставив MessageFormat аргументы. Код печати запрашивает строки из форматов, предоставляя один элемент, который может быть включён в отформатированную строку: Integer, представляющую текущий номер страницы.

Рекомендуется ознакомиться с документацией по MessageFormat, так как некоторые символы, такие как одинарная кавычка, являются специальными и требуют экранирования.

Вот пример создания MessageFormat, который можно использовать для печати "Таблица Дюка: Страница - " и текущего номера страницы:

     // notice the escaping of the single quote
     // notice how the page number is included with "{0}"
     MessageFormat format = new MessageFormat("Duke''s Table: Page - {0}");
 

Printable ограничивает то, что он рисует, в печатной области каждой страницы, которую он печатает. В определённых обстоятельствах он может обнаружить, что не может поместить всё содержимое страницы в эту область. В таких случаях вывод может быть обрублен, но реализация старается сделать что-то разумное. Вот несколько ситуаций, когда это известно, что происходит, и как это может быть обработано этой конкретной реализацией:

  • В любом режиме, когда текст заголовка или подвала слишком широк, чтобы полностью уместиться в печатной области — печатайте как можно больше текста, начиная с начала, как определено ComponentOrientation таблицы.
  • В любом режиме, когда строка слишком высока, чтобы уместиться в печатной области — печатайте верхнюю часть строки и не рисуйте нижнюю границу таблицы.
  • В режиме PrintMode.NORMAL, когда столбец слишком широк, чтобы уместиться в печатной области — печатайте центральную часть столбца и не рисуйте левые и правые границы таблицы.

Совершенно допустимо, чтобы этот Printable был обернут внутри другого, чтобы создать сложные отчёты и документы. Вы даже можете запросить, чтобы разные страницы были отображены в разных печатных областях. Реализация должна быть готова обработать это (возможно, выполняя вычисления макета на лету). Однако, предоставление различных высот для каждой страницы, вероятно, не будет хорошо работать с PrintMode.NORMAL, когда он должен распределять столбцы по страницам.

Что касается настройки внешнего вида таблицы в печатном результате, JTable сам позаботится о скрытии выделения и фокуса во время печати. Для дополнительных настроек, ваши рендереры или код рисования могут настроить внешний вид на основе значения JComponent.isPaintingForPrint()

Кроме того, до вызова этого метода вы можете сначала изменить состояние таблицы, например, отменить редактирование ячейки или правильно изменить размер таблицы. Однако вы не должны изменять состояние таблицы после того, как этот Printable был получен (недействительные изменения включают изменения размера или базовых данных). Поведение возвращаемого Printable не определено после изменения таблицы.

Parameters:
printMode - режим печати, который должен использовать объект для печати
headerFormat - MessageFormat, определяющий текст для печати заголовка, или null для отсутствия
footerFormat - MessageFormat, определяющий текст для печати подвала, или null для отсутствия
Returns:
Printable для печати этой таблицы JTable
Since:
1.5
See Also:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean)
  • Printable
  • PrinterJob

getAccessibleContext

@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этой таблицей JTable. Для таблиц AccessibleContext имеет вид AccessibleJTable. Новый экземпляр AccessibleJTable создаётся при необходимости.
Specified by:
getAccessibleContext in interface Accessible
Overrides:
getAccessibleContext in class Component
Returns:
AccessibleJTable, служащий AccessibleContext для этой JTable

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/JTable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API