Spec-Zone.ru › OpenJDK 21

Класс 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 Tutorial для пошагового руководства и примеров использования JTable.

Класс JTable предоставляет множество возможностей для настройки его отрисовки и редактирования, но также устанавливает значения по умолчанию для этих функций, чтобы простые таблицы можно было легко настроить. Например, чтобы создать таблицу с 10 строками и 10 столбцами чисел:

      TableModel dataModel = new AbstractTableModel() {
          public int getColumnCount() { return 10; }
          public int getRowCount() { return 10;}
          public Object getValueAt(int row, int col) { return 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 в случаях, когда создание подклассов не требуется.

Директория "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.

Since:
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 построение набора столбцов по умолчанию, если это значение true.
protected int autoResizeMode
Определяет, автоматически ли таблица изменяет ширину столбцов, чтобы заполнить всю ширину таблицы, и как она выполняет это изменение.
protected TableCellEditor cellEditor
Объект активного редактора ячейки, который перекрывает экранное пространство, занимаемое текущей ячейкой, и позволяет пользователю изменить ее содержимое.
protected boolean cellSelectionEnabled
Устарело начиная с Java 2 platform v1.3.
protected TableColumnModel columnModel
Название таблицы.
protected TableModel dataModel
Описание таблицы.
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 равно true.
protected boolean showVerticalLines
Таблица рисует вертикальные линии между ячейками, если showVerticalLines равно true.
protected JTableHeader tableHeader
TableHeader , работающая с таблицей.

Поля, объявленные в классе javax.swing.JComponent

listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

Поля, объявленные в классе java.awt.Component

accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Поля, объявленные в интерфейсе java.awt.image.ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

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

Конструктор Описание
JTable()
Создаёт таблицу по умолчанию, инициализированную моделью данных по умолчанию, моделью столбцов по умолчанию и моделью выбора по умолчанию.
JTable(int numRows, int numColumns)
Создаёт таблицу с numRows и numColumns пустых ячеек, используя DefaultTableModel.
JTable(Object[][] rowData, Object[] columnNames)
Создаёт таблицу для отображения значений в двумерном массиве rowData, с именами столбцов columnNames.
JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)
Создаёт таблицу для отображения значений в Vector Vectors, rowData, с именами столбцов columnNames.
JTable(TableModel dm)
Создаёт таблицу, инициализированную dm в качестве модели данных, моделью столбцов по умолчанию и моделью выбора по умолчанию.
JTable(TableModel dm, TableColumnModel cm)
Создаёт таблицу, инициализированную dm в качестве модели данных, cm в качестве модели столбцов и моделью выбора по умолчанию.
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
Создаёт таблицу, инициализированную dm в качестве модели данных, cm в качестве модели столбцов и sm в качестве модели выбора.

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

Modifier and Type Method Description
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, среди прочего, установив модель столбцов таблицы в качестве 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()
Возвращает значение, указывающее, всегда ли эта таблица делает себя достаточно большой, чтобы заполнить высоту окружающего viewport.
Color getGridColor()
Возвращает цвет, используемый для рисования линий сетки.
Dimension getIntercellSpacing()
Возвращает горизонтальное и вертикальное расстояние между ячейками.
TableModel getModel()
Возвращает TableModel, предоставляющий данные, отображаемые этой JTable.
Dimension getPreferredScrollableViewportSize()
Возвращает предпочтительный размер viewport для этой таблицы.
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, чтобы указать, что высота viewport не определяет высоту таблицы, если только getFillsViewportHeight не true, и предпочтительная высота таблицы меньше высоты viewport.
boolean getScrollableTracksViewportWidth()
Возвращает false, если autoResizeMode установлено в AUTO_RESIZE_OFF, что указывает, что ширина viewport не определяет ширину таблицы.
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 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 фокус клавиатуры при активации редактора в результате перенаправления событий клавиатуры 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)
Вызывается при изменении выбора строк — перерисовывает, чтобы отобразить новый выбор.

Методы, объявленные в классе javax.swing.JComponent

addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

Методы, объявленные в классе java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

Методы, объявленные в классе java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

Методы, объявленные в классе java.lang.Object

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

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

AUTO_RESIZE_OFF

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

AUTO_RESIZE_NEXT_COLUMN

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

AUTO_RESIZE_SUBSEQUENT_COLUMNS

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

AUTO_RESIZE_LAST_COLUMN

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

AUTO_RESIZE_ALL_COLUMNS

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

dataModel

protected TableModel dataModel
Модель данных таблицы.

columnModel

protected TableColumnModel columnModel
Модель столбцов таблицы.

selectionModel

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

tableHeader

protected JTableHeader tableHeader
Заголовок таблицы.

rowHeight

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

rowMargin

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

gridColor

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

showHorizontalLines

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

showVerticalLines

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

autoResizeMode

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

autoCreateColumnsFromModel

protected boolean autoCreateColumnsFromModel
Таблица запросит модель данных, чтобы создать набор столбцов по умолчанию, если это значение true.

preferredViewportSize

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

rowSelectionAllowed

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

cellSelectionEnabled

protected boolean cellSelectionEnabled
Устарело начиная с Java 2 platform v1.3. Используйте, пожалуйста, свойство rowSelectionAllowed и свойство columnSelectionAllowed интерфейса columnModel. Или используйте метод getCellSelectionEnabled.

editorComp

protected transient Component editorComp
При редактировании, компонент, отвечающий за редактирование.

cellEditor

protected transient TableCellEditor cellEditor
Активный объект редактора ячейки, который перезаписывает экранное пространство, занимаемое текущей ячейкой, и позволяет пользователю изменить ее содержимое. null если таблица не находится в режиме редактирования.

editingColumn

protected transient int editingColumn
Идентифицирует столбец редактируемой ячейки.

editingRow

protected transient int editingRow
Идентифицирует строку редактируемой ячейки.

defaultRenderersByColumnClass

protected transient Hashtable<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)
Создаёт таблицу, инициализированную моделью данных dm, моделью столбцов cm и моделью выделения sm. Если любой из параметров равен null, этот метод инициализирует таблицу соответствующей моделью по умолчанию. Флаг autoCreateColumnsFromModel устанавливается в false, если cm не равен null, иначе он устанавливается в true, и модель столбцов заполняется подходящими TableColumns для столбцов в dm.
Параметры:
dm - модель данных таблицы
cm - модель столбцов таблицы
sm - модель выделения строк таблицы
См. также:
  • createDefaultDataModel()
  • createDefaultColumnModel()
  • createDefaultSelectionModel()

JTable

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

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's addNotify в свою очередь вызывает этот метод, который является защищённым, чтобы эта процедура установки по умолчанию могла быть переопределена подклассом.
See Also:
  • addNotify()

removeNotify

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

unconfigureEnclosingScrollPane

protected void unconfigureEnclosingScrollPane()
Отменяет действие configureEnclosingScrollPane путём замены columnHeaderView охватывающей области прокрутки на null. Метод JTable's removeNotify вызывает этот метод, который защищён, чтобы эта процедура отмены установки по умолчанию могла быть переопределена подклассом.
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)

setIntercellSpacing

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

getIntercellSpacing

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

setGridColor

@BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
Устанавливает цвет, используемый для рисования линий сетки, на gridColor и перерисовывает. Цвет по умолчанию зависит от темы.
Parameters:
gridColor - новый цвет линий сетки
Throws:
IllegalArgumentException - если gridColor является null
See Also:
  • getGridColor()

getGridColor

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

setShowGrid

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

setShowHorizontalLines

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

setShowVerticalLines

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

getShowHorizontalLines

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

getShowVerticalLines

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

setAutoResizeMode

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

getAutoResizeMode

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

setAutoCreateColumnsFromModel

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

getAutoCreateColumnsFromModel

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

createDefaultColumnsFromModel

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

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

See Also:
  • getAutoCreateColumnsFromModel()

setDefaultRenderer

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

getDefaultRenderer

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

setDefaultEditor

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

getDefaultEditor

public TableCellEditor getDefaultEditor(Class<?> columnClass)
Возвращает редактор, который будет использоваться, когда редактор не был задан для TableColumn. Во время редактирования ячеек редактор извлекается из Hashtable в соответствии с классом ячеек в столбце. Если записи для этого 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 таблицы.

Параметры:
b - включить или выключить автоматическую обработку перетаскивания
Исключения:
HeadlessException - если b является true и GraphicsEnvironment.isHeadless() возвращает true
С версии:
1.4
См. также:
  • GraphicsEnvironment.isHeadless()
  • getDragEnabled()
  • JComponent.setTransferHandler(javax.swing.TransferHandler)
  • TransferHandler

getDragEnabled

public boolean getDragEnabled()
Возвращает, включена ли автоматическая обработка перетаскивания.
Возвращает:
значение свойства dragEnabled
С версии:
1.4
См. также:
  • 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, который принимает перетаскиваемые элементы.

Параметры:
dropMode - используемый режим перетаскивания
Исключения:
IllegalArgumentException - если режим перетаскивания не поддерживается или null
С версии:
1.6
См. также:
  • getDropMode()
  • getDropLocation()
  • JComponent.setTransferHandler(javax.swing.TransferHandler)
  • TransferHandler

getDropMode

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

getDropLocation

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

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

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

Возвращает:
местоположение перетаскивания
С версии:
1.6
См. также:
  • 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.

Параметры:
autoCreateRowSorter - следует ли автоматически создавать RowSorter
С версии:
1.6
См. также:
  • TableRowSorter

getAutoCreateRowSorter

public boolean getAutoCreateRowSorter()
Возвращает true, если всякий раз при изменении модели следует создавать новый RowSorter и устанавливать его в качестве сортировщика таблицы; в противном случае возвращает false.
Возвращает:
true, если RowSorter следует создавать при изменении модели
С версии:
1.6

setUpdateSelectionOnSort

@BeanProperty(expert=true, description="Whether or not to update the selection on sorting") public void setUpdateSelectionOnSort(boolean update)
Указывает, следует ли обновлять выделение после сортировки. Если true, при сортировке выделение сбрасывается таким образом, чтобы те же строки, с точки зрения модели, оставались выделенными. Значение по умолчанию — true.
Параметры:
update - обновлять ли выделение при сортировке
С версии:
1.6

getUpdateSelectionOnSort

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

changeSelection

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

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

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

getSelectionForeground

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

setSelectionForeground

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

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

Это свойство JavaBeans.

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

getSelectionBackground

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

setSelectionBackground

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

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

Это свойство JavaBeans.

Parameters:
selectionBackground - Color для фона выделенных ячеек
See Also:
  • 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.
Parameters:
identifier - объект идентификатора
Returns:
объект TableColumn , соответствующий идентификатору
Throws:
IllegalArgumentException - если identifier имеет значение null или в TableColumn нет столбца с данным идентификатором

convertColumnIndexToModel

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

convertColumnIndexToView

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

convertRowIndexToView

public int convertRowIndexToView(int modelRowIndex)
Отображает индекс строки относительно TableModel в представление. Если содержимое модели не отсортировано, индексы модели и представления совпадают.
Parameters:
modelRowIndex - индекс строки относительно модели
Returns:
индекс соответствующей строки в представлении или -1, если строка не отображается
Throws:
IndexOutOfBoundsException - если сортировка включена и передан индекс, выходящий за пределы количества строк TableModel
Since:
1.6
See Also:
  • 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. Это важное различие, потому что при перестановке пользователем столбцов в таблице столбец с заданным индексом в представлении изменится. При этом действия пользователя не влияют на порядок столбцов модели.

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

setValueAt

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

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

Параметры:
aValue - новое значение
row - строка изменяемой ячейки
column - столбец изменяемой ячейки
См. также:
  • getValueAt(int, int)

isCellEditable

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

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

Параметры:
row - строка, значение которой требуется получить
column - столбец, значение которого требуется получить
Возвращает:
true, если ячейка редактируема
См. также:
  • setValueAt(java.lang.Object, int, int)

addColumn

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

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


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

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

removeColumn

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

moveColumn

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

columnAtPoint

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

rowAtPoint

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

getCellRect

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

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

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

Параметры:
row - индекс строки, где расположена нужная ячейка
column - индекс столбца, где расположена нужная ячейка в представлении; он необязательно совпадает с индексом столбца в модели данных таблицы; метод convertColumnIndexToView(int) может использоваться для преобразования индекса столбца модели данных в индекс столбца представления
includeSpacing - если false, возвращает истинные границы ячейки - вычисленные путем вычитания межклеточного отступа из высоты и ширины моделей столбца и строки
Возвращает:
прямоугольник, содержащий ячейку по координатам row,column
См. также:
  • getIntercellSpacing()

doLayout

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

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

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

Режимы следующие:

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

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

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

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

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

Обзор

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

Определение

Обозначим индивидуальные ограничения как min[i], max[i] и pref[i].

Обозначим их суммы как MIN, MAX и PREF.

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

          size[i] = pref[i] + delta[i]
 
где каждая индивидуальная delta[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
См. также:
  • LayoutManager.layoutContainer(java.awt.Container)
  • Container.setLayout(java.awt.LayoutManager)
  • Container.validate()

sizeColumnsToFit

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

sizeColumnsToFit

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

getToolTipText

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

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

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

setSurrendersFocusOnKeystroke

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

getSurrendersFocusOnKeystroke

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

editCellAt

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

editCellAt

public boolean editCellAt(int row, int column, EventObject e)
Программно начинает редактирование ячейки в строке row и столбце column, если эти индексы находятся в допустимом диапазоне, и ячейка в этих индексах редактируема. Чтобы предотвратить редактирование JTable конкретной таблицы, столбца или значения ячейки, верните false из метода isCellEditable в интерфейсе TableModel.
Параметры:
row - строка для редактирования
column - столбец для редактирования
e - событие для передачи в shouldSelectCell; обратите внимание, что начиная с Java 2 platform 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, который отображает этот компонент.
Переопределяет:
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 - объект L&F TableUI
См. также:
  • UIDefaults.getUI(javax.swing.JComponent)

updateUI

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

getUIClassID

@BeanProperty(bound=false) public String getUIClassID()
Возвращает суффикс, используемый для построения имени класса L&F, используемого для отображения этого компонента.
Переопределяет:
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 изменился каким-либо образом.
Определено в:
sorterChanged в интерфейсе RowSorterListener
Параметры:
e - RowSorterEvent, описывающий изменение
Исключения:
NullPointerException - если e является null
С:
1.6

tableChanged

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

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

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

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

columnAdded

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

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

Определено в:
columnAdded в интерфейсе TableColumnModelListener
Параметры:
e - TableColumnModelEvent
См. также:
  • TableColumnModelListener

columnRemoved

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

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

Определено в:
columnRemoved в интерфейсе TableColumnModelListener
Параметры:
e - TableColumnModelEvent
См. также:
  • TableColumnModelListener

columnMoved

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

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

Определено в:
columnMoved в интерфейсе TableColumnModelListener
Параметры:
e - полученное событие
См. также:
  • 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 области просмотра, в которой отображается эта таблица
See Also:
  • Scrollable.getPreferredScrollableViewportSize()

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
Возвращает предпочтительный размер области просмотра для этой таблицы.
Specified by:
getPreferredScrollableViewportSize в интерфейсе Scrollable
Returns:
объект Dimension с preferredSize области просмотра, которая отображает эту таблицу
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) и возвращает рендерер по умолчанию для этого типа данных.

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

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(), либо здесь, либо внутри пользовательских рендереров.

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

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

getCellEditor

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

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

Parameters:
row - строка редактируемой ячейки, где 0 - первая строка
column - столбец редактируемой ячейки, где 0 - первый столбец
Returns:
редактор для этой ячейки; если null возвращает редактор по умолчанию для этой ячейки
See Also:
  • DefaultCellEditor

prepareEditor

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

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

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

removeEditor

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

paramString

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

print

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

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

Returns:
true, если печать не отменена пользователем
Throws:
SecurityException - если данному потоку запрещено инициировать запрос на печать
PrinterException - если ошибка в системе печати привела к прерыванию задания
Since:
1.5
See Also:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
END_OF_DOCUMENT_MARKER

print

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

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

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

print

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

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

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

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 - PrintRequestAttributeSet , определяющий любые атрибуты печати, или null для отсутствия атрибутов
interactive - печатать в интерактивном режиме или нет
Возвращает:
true, если печать не отменена пользователем
Исключение:
HeadlessException - если методу требуется показать диалог печати или выполнить действия в интерактивном режиме, а GraphicsEnvironment.isHeadless возвращает true
SecurityException - если этому потоку не разрешено инициировать запрос на задание печати
PrinterException - если в системе печати произошла ошибка, которая привела к прерыванию задания
С:
1.5
См. также:
  • print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService)
  • getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)

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) для получения дополнительной информации о том, как печатается таблица.

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

getPrintable

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

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

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

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

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

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

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

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

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

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

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

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

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

Parameters:
printMode - режим печати, который должен использовать объект для печати
headerFormat - объект для форматирования текста, используемого для печати заголовка, или null для отсутствия заголовка
footerFormat - объект для форматирования текста, используемого для печати подвала, или null для отсутствия подвала
Returns:
объект для печати этой 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 в интерфейсе Accessible
Overrides:
getAccessibleContext в классе Component
Returns:
AccessibleJTable, который служит AccessibleContext этой JTable

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

Spec-Zone.ru

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