- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTable
-
- All Implemented Interfaces:
-
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教程中的 How to Use Tables ,了解面向任务的文档和使用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将调整其宽度,以便不需要水平滚动条。 要允许一个水平滚动条, 请用AUTO_RESIZE_OFF调用AUTO_RESIZE_OFF。 请注意,如果您希望使用JTable在一个独立的视图(A之外JScrollPane),并想报头显示,你可以用得到它getTableHeader()并单独显示它。要启用行的排序和过滤,请使用
RowSorter。 您可以通过以下两种方法之一设置行排序:- 直接设置
RowSorter。 例如:table.setRowSorter(new TableRowSorter(model))。 - 在设置
autoCreateRowSorter属性为true,使JTable创建RowSorter你。 例如:setAutoCreateRowSorter(true)。
当设计使用
JTable应用程序时,值得密切关注表示数据的数据结构。 该DefaultTableModel是使用一个模型实现Vector的VectorS的Objects到存储单元格的值。 除了将数据从应用程序复制到DefaultTableModel,还可以将数据包在TableModel接口的方法中,以便将数据直接传递到JTable,如上例所示。 这通常导致更高效的应用程序,因为该模型可以自由选择最适合数据的内部表示。 用于决定是否使用AbstractTableModel或DefaultTableModel一个很好的经验法则是使用AbstractTableModel作为创建子类的基类和DefaultTableModel当不需要子类化时。源代码分发演示区域中的“TableExample”目录提供了许多
JTable用法的完整示例,涵盖了如何使用JTable提供从数据库获取的数据的可编辑视图以及如何修改显示中的列使用专业的渲染器和编辑器。JTable使用整数来引用它显示的模型的行和列。JTable只需要一个表格范围的单元格,并使用getValueAt(int, int)在绘制期间从模型中检索值。 重要的是要记住,各种JTable方法返回的列和行索引都是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将根据排序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's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans包中。 请参阅XMLEncoder。- 从以下版本开始:
- 1.2
- 另请参见:
-
DefaultTableModel,TableRowSorter, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected classJTable.AccessibleJTable这个类实现JTable类的可访问性支持。static classJTable.DropLocation的一个子类TransferHandler.DropLocation表示用于一个放置位置JTable。static classJTable.PrintMode打印模式,用于打印JTables。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field 描述 static intAUTO_RESIZE_ALL_COLUMNS在所有调整大小操作期间,按比例调整所有列的大小。static intAUTO_RESIZE_LAST_COLUMN在所有调整大小操作期间,仅对最后一列应用调整。static intAUTO_RESIZE_NEXT_COLUMN在UI中调整列时,以相反的方式调整下一列。static intAUTO_RESIZE_OFF不要自动调整色谱柱宽度; 使用水平滚动条代替。static intAUTO_RESIZE_SUBSEQUENT_COLUMNS在UI调整期间,更改后续列以保留总宽度; 这是默认行为。protected booleanautoCreateColumnsFromModel如果这是真的,该表将查询TableModel以构建默认列。protected intautoResizeMode确定表是否自动调整表的列的宽度,以占用表的整个宽度,以及如何调整大小。protected TableCellEditorcellEditor活动单元编辑器对象覆盖当前单元占用的屏幕空间,并允许用户改变其内容。protected booleancellSelectionEnabled作为Java 2平台v1.3的过时。protected TableColumnModelcolumnModel表中的TableColumnModel。protected TableModeldataModel表中的TableModel。protected Hashtable<Object,Object>defaultEditorsByColumnClass一个显示和编辑单元格内容的对象表,由TableModel接口中的getColumnClass中声明的类索引。protected Hashtable<Object,Object>defaultRenderersByColumnClass一个显示单元格内容的对象表,由TableModel接口中的getColumnClass中声明的类索引。protected inteditingColumn标识要编辑的单元格的列。protected inteditingRow标识正在编辑的单元格行。protected ComponenteditorComp如果编辑,Component正在处理编辑。protected ColorgridColor网格的颜色。protected DimensionpreferredViewportSize由Scrollable界面用于确定初始可见区域。protected introwHeight表中每行的像素高度。protected introwMargin每行单元格之间的边距的像素高度。protected booleanrowSelectionAllowed如果此表中允许行选择,则为真。protected ColorselectionBackground所选单元格的背景颜色。protected ColorselectionForeground所选单元格的前景色。protected ListSelectionModelselectionModel表中的ListSelectionModel,用于跟踪行选择。protected booleanshowHorizontalLines如果showHorizontalLines为真,表格会在单元格之间绘制水平线。protected booleanshowVerticalLines如果showVerticalLines为真,表格将在单元格之间绘制垂直线。protected JTableHeadertableHeaderTableHeader使用表。-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
构造方法摘要
构造方法 Constructor 描述 JTable()构造一个使用默认数据模型,默认列模型和默认选择模型初始化的默认值JTable。JTable(int numRows, int numColumns)使用numRows构建一个JTable的numRows和numColumns个空单元DefaultTableModel。JTable(Object[][] rowData, Object[] columnNames)构造一个JTable以显示二维数组中的值,rowData,列名称为columnNames。JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)构造一个JTable以显示的值Vector的Vectors,rowData,其列名称为columnNames。JTable(TableModel dm)构造一个JTable,它以dm作为数据模型初始化,默认列模型和默认选择模型。JTable(TableModel dm, TableColumnModel cm)构造一个JTable是与初始化dm作为数据模型,cm作为列模型和默认的选择模型。JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)构建一个JTable,以dm作为数据模型初始化,cm作为列模型,以及sm作为选择模型。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 voidaddColumn(TableColumn aColumn)将aColumn追加到JTable的列模型所持有的列数组的末尾。voidaddColumnSelectionInterval(int index0, int index1)将列从index0添加到index1,包括当前选择。voidaddNotify()调用configureEnclosingScrollPane方法。voidaddRowSelectionInterval(int index0, int index1)将行从index0添加到index1(包括)到当前选择。voidchangeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)根据两个标志的状态更新表格的选择模型:toggle和extend。voidclearSelection()取消选择所有选定的列和行。voidcolumnAdded(TableColumnModelEvent e)当列添加到表列模型时调用。intcolumnAtPoint(Point point)返回point所在列的索引,如果结果不在[getColumnCount()-1]范围内,则getColumnCount()-1。voidcolumnMarginChanged(ChangeEvent e)当列由于边距更改而移动时调用。voidcolumnMoved(TableColumnModelEvent e)当列重新定位时调用。voidcolumnRemoved(TableColumnModelEvent e)从列列模型中删除列时调用。voidcolumnSelectionChanged(ListSelectionEvent e)当更改TableColumnModel的选择模型时调用。protected voidconfigureEnclosingScrollPane()如果这JTable是viewportView的封闭JScrollPane(通常情况下),配置此ScrollPane的,除其他事项外,安装表的tableHeader为columnHeaderView滚动窗格。intconvertColumnIndexToModel(int viewColumnIndex)将视图中的列索引为viewColumnIndex到表模型中的列的索引。intconvertColumnIndexToView(int modelColumnIndex)将表模型中的列索引为modelColumnIndex到视图中列的索引。intconvertRowIndexToModel(int viewRowIndex)将视图的索引映射到底层TableModel。intconvertRowIndexToView(int modelRowIndex)根据视图的TableModel映射行的索引。protected TableColumnModelcreateDefaultColumnModel()返回默认列模型对象,它是一个DefaultTableColumnModel。voidcreateDefaultColumnsFromModel()使用TableModel界面中定义的getColumnCount方法从数据模型创建表的默认列。protected TableModelcreateDefaultDataModel()返回默认表模型对象,它是一个DefaultTableModel。protected voidcreateDefaultEditors()为对象,数字和布尔值创建默认单元格编辑器。protected voidcreateDefaultRenderers()为对象,数字,双精度,日期,布尔值和图标创建默认单元格渲染器。protected ListSelectionModelcreateDefaultSelectionModel()返回默认选择模型对象,它是一个DefaultListSelectionModel。protected JTableHeadercreateDefaultTableHeader()返回默认的表头对象,它是一个JTableHeader。static JScrollPanecreateScrollPaneForTable(JTable aTable)已过时。截至Swing 1.0.2版,替换为new JScrollPane(aTable)。voiddoLayout()导致此表布置其行和列。booleaneditCellAt(int row, int column)以row和column编程方式编程,如果这些索引在有效范围内,那些索引处的单元格是可编辑的。booleaneditCellAt(int row, int column, EventObject e)如果这些索引处于有效范围,那么以编程方式开始编辑该单元格,即row和column,并且这些索引处的单元格是可编辑的。voideditingCanceled(ChangeEvent e)编辑被取消后调用。voideditingStopped(ChangeEvent e)编辑完成后调用。AccessibleContextgetAccessibleContext()获取与此JTable关联的AccessibleContext。booleangetAutoCreateColumnsFromModel()确定表是否将从模型中创建默认列。booleangetAutoCreateRowSorter()返回true如果模型发生变化,应该创建一个新的RowSorter作为表格的分拣机; 否则返回false。intgetAutoResizeMode()返回表的自动调整大小模式。TableCellEditorgetCellEditor()返回活动单元格编辑器,如果表当前未编辑,则为null。TableCellEditorgetCellEditor(int row, int column)为row和column指定的单元格返回适当的编辑器。RectanglegetCellRect(int row, int column, boolean includeSpacing)返回位于row和column的交点处的单元格的矩形。TableCellRenderergetCellRenderer(int row, int column)为此行和列指定的单元格返回适当的渲染器。booleangetCellSelectionEnabled()如果列和列选择模型都启用,则返回true。TableColumngetColumn(Object identifier)返回表中的列的TableColumn对象,其标识符等于identifier,与equals进行比较时。Class<?>getColumnClass(int column)返回列位置column在视图中显示的列的类型。intgetColumnCount()返回列模型中的列数。TableColumnModelgetColumnModel()返回包含此表的所有列信息的TableColumnModel。StringgetColumnName(int column)返回视图中出现在列位置column列的column。booleangetColumnSelectionAllowed()如果可以选择列,则返回true。TableCellEditorgetDefaultEditor(Class<?> columnClass)在TableColumn没有设置编辑器时,返回要使用的编辑器。TableCellRenderergetDefaultRenderer(Class<?> columnClass)返回在TableColumn未设置渲染器时要使用的单元格渲染器。booleangetDragEnabled()返回是否启用自动拖动处理。JTable.DropLocationgetDropLocation()在组件的DnD操作期间返回此组件应该可视地指示为放置位置的位置,如果目前没有显示位置,则返回null。DropModegetDropMode()返回此组件的放置模式。intgetEditingColumn()返回包含当前正在编辑的单元格的列的索引。intgetEditingRow()返回包含当前正在编辑的单元格的行的索引。ComponentgetEditorComponent()返回处理编辑会话的组件。booleangetFillsViewportHeight()返回此表是否总是足够大以填充封闭视口的高度。ColorgetGridColor()返回用于绘制网格线的颜色。DimensiongetIntercellSpacing()返回单元格之间的水平和垂直空间。TableModelgetModel()返回提供TableModel显示的数据的JTable。DimensiongetPreferredScrollableViewportSize()返回此表的视口的首选大小。PrintablegetPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)返回一个Printable用于打印此JTable。intgetRowCount()返回JTable可以显示的行数,给定无限空间。intgetRowHeight()返回表行的高度(以像素为单位)。intgetRowHeight(int row)返回row单元格的高度(以像素为row。intgetRowMargin()获取单元格之间的空白空间(以像素为单位)的数量。booleangetRowSelectionAllowed()如果可以选择行,则返回true。RowSorter<? extends TableModel>getRowSorter()返回负责排序的对象。intgetScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)返回visibleRect.height或visibleRect.width,具体取决于此表的方向。booleangetScrollableTracksViewportHeight()返回false以表示视口的高度不会确定表的高度,除非getFillsViewportHeight为true并且表的首选高度小于视口的高度。booleangetScrollableTracksViewportWidth()如果autoResizeMode设置为AUTO_RESIZE_OFF,则返回false,这表示视口的宽度不能确定表的宽度。intgetScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)返回完全暴露一个新行或列的滚动增量(以像素为单位)(取决于方向)。intgetSelectedColumn()返回第一个选定列的索引,如果未选择列,则返回-1。intgetSelectedColumnCount()返回所选列的数量。int[]getSelectedColumns()返回所有列的索引。intgetSelectedRow()返回第一个选定行的索引,如果没有选择行,则返回-1。intgetSelectedRowCount()返回所选行的数量。int[]getSelectedRows()返回所有选定行的索引。ColorgetSelectionBackground()返回所选单元格的背景颜色。ColorgetSelectionForeground()返回所选单元格的前景颜色。ListSelectionModelgetSelectionModel()返回用于维持行选择状态的ListSelectionModel。booleangetShowHorizontalLines()如果表在单元格之间绘制水平线,则返回true,否则返回false。booleangetShowVerticalLines()如果表在单元格之间绘制垂直线,则返回true,否则返回false。booleangetSurrendersFocusOnKeystroke()如果编辑器在击键导致编辑器被激活时得到焦点,则返回trueJTableHeadergetTableHeader()返回此tableHeader使用的JTable。StringgetToolTipText(MouseEvent event)覆盖JComponent的getToolTipText方法,以便允许使用渲染器的提示,如果它具有文本集。TableUIgetUI()返回渲染此组件的L&F对象。StringgetUIClassID()返回用于构造用于呈现此组件的L&F类的名称的后缀。booleangetUpdateSelectionOnSort()如果选择应在排序后更新,则返回true。ObjectgetValueAt(int row, int column)返回单元格值为row和column。protected voidinitializeLocalVars()将表属性初始化为其默认值。booleanisCellEditable(int row, int column)如果可编辑row和column的单元格,则返回true。booleanisCellSelected(int row, int column)如果指定的索引在行和列的有效范围内并且选定了指定位置的单元格,则返回true。booleanisColumnSelected(int column)如果指定的索引在列的有效范围内,并且该索引的列被选中,则返回true。booleanisEditing()如果正在编辑单元格,则返回true。booleanisRowSelected(int row)如果指定的索引在行的有效范围内,则返回true,并选择该索引处的行。voidmoveColumn(int column, int targetColumn)将列column移动到视图中的列targetColumn当前占用的位置。protected StringparamString()返回此表的字符串表示形式。ComponentprepareEditor(TableCellEditor editor, int row, int column)准备通过在查询的单元格的值和选择状态数据模型中的编辑器row,column。ComponentprepareRenderer(TableCellRenderer renderer, int row, int column)通过在查询的单元格的值和选择状态的数据模型来准备渲染器row,column。booleanprint()显示打印对话框的方便方法,然后打印JTable模式PrintMode.FIT_WIDTH,没有页眉或页脚文本。booleanprint(JTable.PrintMode printMode)显示打印对话框的方便方法,然后在给定的打印模式下打印JTable,没有页眉或页脚文本。booleanprint(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)显示打印对话框的便捷方法,然后以给定的打印模式打印此JTable,并使用指定的页眉和页脚文本。booleanprint(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive)按照功能全面的print方法打印此表,默认打印机指定为打印服务。booleanprint(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service)打印JTable。protected booleanprocessKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)调用以处理键绑定为ks作为的结果KeyEvente。voidremoveColumn(TableColumn aColumn)从这个JTable的列数组中删除aColumn。voidremoveColumnSelectionInterval(int index0, int index1)取消选择从index0到index1(含)的列。voidremoveEditor()丢弃编辑器对象,并释放用于单元格渲染的空间。voidremoveNotify()调用unconfigureEnclosingScrollPane方法。voidremoveRowSelectionInterval(int index0, int index1)取消选择从index0到index1(含)的行。protected voidresizeAndRepaint()相当于revalidate其次是repaint。introwAtPoint(Point point)返回point所在行的索引,如果结果不在[getRowCount()-1]范围内,则getRowCount()-1。voidselectAll()选择表中的所有行,列和单元格。voidsetAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)设置此表的autoCreateColumnsFromModel标志。voidsetAutoCreateRowSorter(boolean autoCreateRowSorter)指定在模型更改时是否为表创建一个RowSorter。voidsetAutoResizeMode(int mode)当表被调整大小时,设置表的自动调整大小模式。voidsetCellEditor(TableCellEditor anEditor)设置活动单元格编辑器。voidsetCellSelectionEnabled(boolean cellSelectionEnabled)设置此表是否同时允许列选择和行选择。voidsetColumnModel(TableColumnModel columnModel)将此表的列模型设置为columnModel并从新列模型注册侦听器通知。voidsetColumnSelectionAllowed(boolean columnSelectionAllowed)设置是否可以选择此模型中的列。voidsetColumnSelectionInterval(int index0, int index1)选择从index0到index1(含)的列。voidsetDefaultEditor(Class<?> columnClass, TableCellEditor editor)如果在TableColumn没有设置编辑器,则设置要使用的默认单元格编辑器。voidsetDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)设置要在TableColumn未设置渲染器时使用的默认单元格渲染器。voidsetDragEnabled(boolean b)打开或关闭自动拖动处理。voidsetDropMode(DropMode dropMode)设置此组件的下拉模式。voidsetEditingColumn(int aColumn)设置editingColumn变量。voidsetEditingRow(int aRow)设置editingRow变量。voidsetFillsViewportHeight(boolean fillsViewportHeight)设置此表是否总是足够大以填充封闭视口的高度。voidsetGridColor(Color gridColor)将用于绘制网格线的颜色设置为gridColor并重新显示。voidsetIntercellSpacing(Dimension intercellSpacing)设置rowMargin和columnMargin(单元格之间的空间的高度和宽度)为intercellSpacing。voidsetModel(TableModel dataModel)将此表的数据模型设置为dataModel并将其注册为来自新数据模型的侦听器通知。voidsetPreferredScrollableViewportSize(Dimension size)设置此表的视口的首选大小。voidsetRowHeight(int rowHeight)将所有单元格的高度(以像素为单位)设置为rowHeight,重新验证和重绘。voidsetRowHeight(int row, int rowHeight)将row的高度设置为rowHeight,重新验证和重绘。voidsetRowMargin(int rowMargin)设置相邻行中的单元格之间的空白空间量。voidsetRowSelectionAllowed(boolean rowSelectionAllowed)设置是否可以选择此模型中的行。voidsetRowSelectionInterval(int index0, int index1)选择从index0到index1(包括)的行。voidsetRowSorter(RowSorter<? extends TableModel> sorter)设置RowSorter。voidsetSelectionBackground(Color selectionBackground)设置所选单元格的背景颜色。voidsetSelectionForeground(Color selectionForeground)设置所选单元格的前景色。voidsetSelectionMode(int selectionMode)将表的选择模式设置为仅允许单个选择,单个连续间隔或多个间隔。voidsetSelectionModel(ListSelectionModel selectionModel)将此表的行选择模型设置为selectionModel并从新的选择模型注册侦听器通知。voidsetShowGrid(boolean showGrid)设置表格是否在单元格周围绘制网格线。voidsetShowHorizontalLines(boolean showHorizontalLines)设置表格是否在单元格之间绘制水平线。voidsetShowVerticalLines(boolean showVerticalLines)设置表格是否在单元格之间绘制垂直线。voidsetSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)设置当由于单元格的JTable转发键盘事件而激活编辑器时,此JTable中的编辑器是否获得键盘焦点。voidsetTableHeader(JTableHeader tableHeader)设置tableHeader使用这个JTable到newHeader。voidsetUI(TableUI ui)设置渲染此组件并重新绘制的L&F对象。voidsetUpdateSelectionOnSort(boolean update)指定选择是否应在排序后更新。voidsetValueAt(Object aValue, int row, int column)设置表模型中单元格的值为row和column。voidsizeColumnsToFit(boolean lastColumnOnly)已过时。截至Swing 1.0.3版本,由doLayout()替换。voidsizeColumnsToFit(int resizingColumn)作为Java 2平台v1.4的过时。voidsorterChanged(RowSorterEvent e)RowSorterListener通知RowSorter已经在某种程度上改变了。voidtableChanged(TableModelEvent e)当该表的TableModel生成一个TableModelEvent时调用。protected voidunconfigureEnclosingScrollPane()逆转的效果configureEnclosingScrollPane通过更换columnHeaderView与封闭滚动窗格null。voidupdateUI()来自UIManager通知说L&F已经改变了。voidvalueChanged(ListSelectionEvent e)当行选择更改时调用 - 重绘以显示新选择。-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
-
-
-
字段详细信息
-
AUTO_RESIZE_OFF
public static final int AUTO_RESIZE_OFF
不要自动调整色谱柱宽度; 使用水平滚动条代替。- 另请参见:
- Constant Field Values
-
AUTO_RESIZE_NEXT_COLUMN
public static final int AUTO_RESIZE_NEXT_COLUMN
在UI中调整列时,以相反的方式调整下一列。- 另请参见:
- Constant Field Values
-
AUTO_RESIZE_SUBSEQUENT_COLUMNS
public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
在UI调整期间,更改后续列以保留总宽度; 这是默认行为。- 另请参见:
- Constant Field Values
-
AUTO_RESIZE_LAST_COLUMN
public static final int AUTO_RESIZE_LAST_COLUMN
在所有调整大小操作期间,仅对最后一列应用调整。- 另请参见:
- Constant Field Values
-
AUTO_RESIZE_ALL_COLUMNS
public static final int AUTO_RESIZE_ALL_COLUMNS
在所有调整大小操作期间,按比例调整所有列的大小。- 另请参见:
- Constant Field Values
-
dataModel
protected TableModel dataModel
表中的TableModel。
-
columnModel
protected TableColumnModel columnModel
表中的TableColumnModel。
-
selectionModel
protected ListSelectionModel selectionModel
表中的ListSelectionModel,用于跟踪行选择。
-
tableHeader
protected JTableHeader tableHeader
TableHeader使用表。
-
rowHeight
protected int rowHeight
表中每行的像素高度。
-
rowMargin
protected int rowMargin
每行单元格之间的边距的像素高度。
-
gridColor
protected Color gridColor
网格的颜色。
-
showHorizontalLines
protected boolean showHorizontalLines
如果showHorizontalLines为真,表格会在单元格之间绘制水平线。
-
showVerticalLines
protected boolean showVerticalLines
如果showVerticalLines为true,表格会在单元格之间绘制垂直线。
-
autoResizeMode
protected int autoResizeMode
确定表是否自动调整表的列的宽度,以占用表的整个宽度,以及如何调整大小。
-
autoCreateColumnsFromModel
protected boolean autoCreateColumnsFromModel
如果这是真的,表将查询TableModel构建默认的列集。
-
preferredViewportSize
protected Dimension preferredViewportSize
由Scrollable界面用于确定初始可见区域。
-
rowSelectionAllowed
protected boolean rowSelectionAllowed
如果此表中允许行选择,则为真。
-
cellSelectionEnabled
protected boolean cellSelectionEnabled
作为Java 2平台v1.3的过时。 请使用rowSelectionAllowed属性和columnSelectionAllowed的财产columnModel代替。 或使用方法getCellSelectionEnabled。
-
editorComp
protected transient Component editorComp
如果编辑,Component正在处理编辑。
-
cellEditor
protected transient TableCellEditor cellEditor
活动单元编辑器对象覆盖当前单元占用的屏幕空间,并允许用户改变其内容。null如果表当前没有编辑。
-
editingColumn
protected transient int editingColumn
标识要编辑的单元格的列。
-
editingRow
protected transient int editingRow
标识正在编辑的单元格行。
-
defaultRenderersByColumnClass
protected transient Hashtable<Object,Object> defaultRenderersByColumnClass
一个显示单元格内容的对象表,由TableModel接口中的getColumnClass中声明的类索引。
-
defaultEditorsByColumnClass
protected transient Hashtable<Object,Object> defaultEditorsByColumnClass
显示和编辑单元格内容的对象表,按TableModel界面中的getColumnClass中声明的类索引。
-
selectionForeground
protected Color selectionForeground
所选单元格的前景色。
-
selectionBackground
protected Color selectionBackground
所选单元格的背景颜色。
-
-
构造方法详细信息
-
JTable
public JTable()
构造使用默认数据模型,默认列模型和默认选择模型初始化的默认值JTable。
-
JTable
public JTable(TableModel dm)
构造一个JTable,它作为数据模型初始化为dm,默认列模型和默认选择模型。- 参数
-
dm- 表的数据模型 - 另请参见:
-
createDefaultColumnModel(),createDefaultSelectionModel()
-
JTable
public JTable(TableModel dm, TableColumnModel cm)
构造一个JTable,它以dm作为数据模型初始化,cm作为列模型,以及默认选择模型。- 参数
-
dm- 表的数据模型 -
cm- 表的列模型 - 另请参见:
-
createDefaultSelectionModel()
-
JTable
public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
构造一个JTable,它以dm作为数据模型初始化,cm作为列模型,以及sm作为选择模型。 如果任何参数为null此方法将使用相应的默认模型初始化表。 该autoCreateColumnsFromModel标志设置为false,如果cm非空,否则将被设置为true,列模型中填充了适合TableColumns的列dm。- 参数
-
dm- 表的数据模型 -
cm- 表格的列模型 -
sm- 表的行选择模型 - 另请参见:
-
createDefaultDataModel(),createDefaultColumnModel(),createDefaultSelectionModel()
-
JTable
public JTable(int numRows, int numColumns)使用numRows构建JTable与numRows和numColumns空单元DefaultTableModel。 列将具有“A”,“B”,“C”等形式的名称。- 参数
-
numRows- 表所包含的行数 -
numColumns- 表所包含的列数 - 另请参见:
-
DefaultTableModel
-
JTable
public JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)
构造一个JTable以显示的值Vector的Vectors,rowData,其列名称为columnNames。 该Vectors包含在rowData应该包含该行的值。 换句话说,可以用以下代码获得第1列第5列的单元格值:((Vector)rowData.elementAt(1)).elementAt(5);- 参数
-
rowData- 新表的数据 -
columnNames- 每列的名称
-
-
方法详细信息
-
addNotify
public void addNotify()
调用configureEnclosingScrollPane方法。- 重写:
-
addNotify在JComponent - 另请参见:
-
configureEnclosingScrollPane()
-
configureEnclosingScrollPane
protected void configureEnclosingScrollPane()
如果这JTable是viewportView的封闭JScrollPane(通常情况下),配置此ScrollPane的,除其他事项外,安装表的tableHeader为columnHeaderView滚动窗格。 当JTable添加到JScrollPane以通常的方式,使用new JScrollPane(myTable),addNotify被称为在JTable(当表被添加到视口)。JTable的addNotify方法依次调用此方法,该方法受到保护,以便这个默认安装过程可以被子类覆盖。- 另请参见:
-
addNotify()
-
removeNotify
public void removeNotify()
调用unconfigureEnclosingScrollPane方法。
-
unconfigureEnclosingScrollPane
protected void unconfigureEnclosingScrollPane()
逆转的效果configureEnclosingScrollPane通过更换columnHeaderView与封闭滚动窗格null。JTable的removeNotify方法调用此方法,该方法受到保护,以便这个默认卸载过程可以被子类覆盖。- 从以下版本开始:
- 1.3
- 另请参见:
-
removeNotify(),configureEnclosingScrollPane()
-
createScrollPaneForTable
@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
已过时。 截至Swing 1.0.2版,替换为new JScrollPane(aTable)。相当于new JScrollPane(aTable)。- 参数
-
aTable- 一个用于滚动窗格的JTable - 结果
-
一个
JScrollPane创建使用aTable
-
setTableHeader
@BeanProperty(description="The JTableHeader instance which renders the column headers.") public void setTableHeader(JTableHeader tableHeader)
设置tableHeader使用这个JTable到newHeader。 有一个nulltableHeader是合法的。- 参数
-
tableHeader- new tableHeader - 另请参见:
-
getTableHeader()
-
getTableHeader
public JTableHeader getTableHeader()
返回这个tableHeader使用的JTable。- 结果
-
本表使用的
tableHeader - 另请参见:
-
setTableHeader(javax.swing.table.JTableHeader)
-
setRowHeight
@BeanProperty(description="The height of the specified row.") public void setRowHeight(int rowHeight)
将所有单元格的高度(以像素为单位)设置为rowHeight,重新验证和重绘。 单元格的高度将等于行高减去行边距。- 参数
-
rowHeight- 新行高 - 异常
-
IllegalArgumentException- 如果rowHeight小于1 - 另请参见:
-
getRowHeight()
-
getRowHeight
public int getRowHeight()
返回表行的高度(以像素为单位)。- 结果
- 表格行的高度(像素)
- 另请参见:
-
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,重新验证和重新绘制。 该行中的单元格的高度将等于行高减去行边距。- 参数
-
row- 其高度正在更改的行 -
rowHeight- 新行高,以像素为单位 - 异常
-
IllegalArgumentException- 如果rowHeight小于1 - 从以下版本开始:
- 1.3
-
getRowHeight
public int getRowHeight(int row)
返回row单元格的高度(以像素为row。- 参数
-
row- 要返回高度的行 - 结果
- 行中的单元格的高度(以像素为单位)
- 从以下版本开始:
- 1.3
-
setRowMargin
@BeanProperty(description="The amount of space between cells.") public void setRowMargin(int rowMargin)
设置相邻行中的单元格之间的空白空间量。- 参数
-
rowMargin- 一行中单元格之间的像素数 - 另请参见:
-
getRowMargin()
-
getRowMargin
public int getRowMargin()
获取单元格之间的空白空间(以像素为单位)的数量。 相当于:getIntercellSpacing().height。- 结果
- 一行中单元格之间的像素数
- 另请参见:
-
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。- 参数
-
intercellSpacing- 一个Dimension指定单元格之间的新宽度和高度 - 另请参见:
-
getIntercellSpacing()
-
getIntercellSpacing
public Dimension getIntercellSpacing()
返回单元格之间的水平和垂直空间。 默认间距是外观和感觉依赖。- 结果
- 细胞之间的水平和垂直间距
- 另请参见:
-
setIntercellSpacing(java.awt.Dimension)
-
setGridColor
@BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
将用于绘制网格线的颜色设置为gridColor并重新显示。 默认颜色是外观和感觉依赖。- 参数
-
gridColor- 网格线的新颜色 - 异常
-
IllegalArgumentException- 如果gridColor是null - 另请参见:
-
getGridColor()
-
getGridColor
public Color getGridColor()
返回用于绘制网格线的颜色。 默认颜色是外观和感觉依赖。- 结果
- 用于绘制网格线的颜色
- 另请参见:
-
setGridColor(java.awt.Color)
-
setShowGrid
@BeanProperty(description="The color used to draw the grid lines.") public void setShowGrid(boolean showGrid)
设置表格是否在单元格周围绘制网格线。 如果showGrid是真的; 如果它是假的,它不是。 没有getShowGrid方法,因为这个状态保存在两个变量 -showHorizontalLines和showVerticalLines- 每个变量可以独立查询。- 参数
-
showGrid- 如果表视图应绘制网格线,showGridtrue - 另请参见:
-
setShowVerticalLines(boolean),setShowHorizontalLines(boolean)
-
setShowHorizontalLines
@BeanProperty(description="Whether horizontal lines should be drawn in between the cells.") public void setShowHorizontalLines(boolean showHorizontalLines)
设置表格是否在单元格之间绘制水平线。 如果showHorizontalLines是真的; 如果它是假的,它不是。- 参数
-
showHorizontalLines- 如果表视图应绘制水平线,showHorizontalLinestrue - 另请参见:
-
getShowHorizontalLines(),setShowGrid(boolean),setShowVerticalLines(boolean)
-
setShowVerticalLines
@BeanProperty(description="Whether vertical lines should be drawn in between the cells.") public void setShowVerticalLines(boolean showVerticalLines)
设置表格是否在单元格之间绘制垂直线。 如果showVerticalLines是真的; 如果它是假的,它不是。- 参数
-
showVerticalLines- 如果表视图应绘制垂直线,showVerticalLinestrue - 另请参见:
-
getShowVerticalLines(),setShowGrid(boolean),setShowHorizontalLines(boolean)
-
getShowHorizontalLines
public boolean getShowHorizontalLines()
如果表在单元格之间绘制水平线,则返回true,否则返回false。 默认值是依赖于外观。- 结果
- 如果表在单元格之间绘制水平线,则为true,否则为false
- 另请参见:
-
setShowHorizontalLines(boolean)
-
getShowVerticalLines
public boolean getShowVerticalLines()
如果表在单元格之间绘制垂直线,则返回true,否则返回false。 默认值是依赖于外观。- 结果
- 如果表在单元格之间绘制垂直线,则为true,否则为false
- 另请参见:
-
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()。- 参数
-
mode- 5个合法值之一:AUTO_RESIZE_OFF,AUTO_RESIZE_NEXT_COLUMN,AUTO_RESIZE_SUBSEQUENT_COLUMNS,AUTO_RESIZE_LAST_COLUMN,AUTO_RESIZE_ALL_COLUMNS - 另请参见:
-
getAutoResizeMode(),doLayout()
-
getAutoResizeMode
public int getAutoResizeMode()
返回表的自动调整大小模式。 默认模式为AUTO_RESIZE_SUBSEQUENT_COLUMNS。- 结果
- 表的autoResizeMode
- 另请参见:
-
setAutoResizeMode(int),doLayout()
-
setAutoCreateColumnsFromModel
@BeanProperty(description="Automatically populates the columnModel when a new TableModel is submitted.") public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
设置此表的autoCreateColumnsFromModel标志。 如果autoCreateColumnsFromModel从false更改为true,此方法将调用createDefaultColumnsFromModel。- 参数
-
autoCreateColumnsFromModel- 如果JTable应自动创建列,autoCreateColumnsFromModeltrue - 另请参见:
-
getAutoCreateColumnsFromModel(),createDefaultColumnsFromModel()
-
getAutoCreateColumnsFromModel
public boolean getAutoCreateColumnsFromModel()
确定表是否将从模型中创建默认列。 如果为true,则setModel将清除任何现有列,并从新模型中创建新列。 另外,如果tableChanged通知中的事件指定了整个表的更改,那么这些列将被重建。 默认值为true。- 结果
- 表的autoCreateColumnsFromModel
- 另请参见:
-
setAutoCreateColumnsFromModel(boolean),createDefaultColumnsFromModel()
-
createDefaultColumnsFromModel
public void createDefaultColumnsFromModel()
使用TableModel接口中定义的getColumnCount方法从数据模型创建表的默认列。根据模型信息创建新列之前清除任何现有的列。
-
setDefaultRenderer
public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
如果在TableColumn没有设置渲染器,则设置要使用的默认单元格渲染器。 如果渲染器为null,则删除此列类的默认渲染器。- 参数
-
columnClass- 设置此columnClass的默认单元格渲染器 -
renderer- 要用于此columnClass的默认单元格渲染器 - 另请参见:
-
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,所有这些都可以被修改或替换。- 参数
-
columnClass- 返回此columnClass的默认单元格渲染器 - 结果
- 这个columnClass的渲染器
- 另请参见:
-
setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer),getColumnClass(int)
-
setDefaultEditor
public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
如果在TableColumn没有设置编辑器,则设置要使用的默认单元格编辑器。 如果表中或表中的特定列不需要编辑,请使用TableModel界面中的isCellEditable方法确保此JTable不会在这些列中启动编辑器。 如果编辑器为null,则删除此列类的默认编辑器。- 参数
-
columnClass- 为此columnClass设置默认单元格编辑器 -
editor- 用于此columnClass的默认单元格编辑器 - 另请参见:
-
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,所有这些都可以被修改或替换。- 参数
-
columnClass- 返回此columnClass的默认单元格编辑器 - 结果
- 用于此columnClass的默认单元格编辑器
- 另请参见:
-
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()
在组件中的DnD操作期间返回此组件应该可视地指示为放置位置的位置,如果没有显示当前位置,则返回null。此方法不适用于从
TransferHandler查询放置位置,因为放置位置仅在TransferHandler的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。- 结果
-
如果模型更改时应创建
RowSortertrue - 从以下版本开始:
- 1.6
-
setUpdateSelectionOnSort
@BeanProperty(expert=true, description="Whether or not to update the selection on sorting") public void setUpdateSelectionOnSort(boolean update)
指定选择是否应在排序后更新。 如果为真,排序选择将被重置,使得根据模型保留相同的行。 默认值为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- 如果此模型将允许行选择,rowSelectionAllowedtrue - 另请参见:
-
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- 如果此模型将允许列选择,columnSelectionAllowedtrue - 另请参见:
-
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位于[getRowCount()-1]之外
-
setColumnSelectionInterval
public void setColumnSelectionInterval(int index0, int index1)选择从index0到index1(含)的列。- 参数
-
index0- 间隔的一端 -
index1- 间隔的另一端 - 异常
-
IllegalArgumentException- 如果index0或index1在[getColumnCount()-1]之外
-
addRowSelectionInterval
public void addRowSelectionInterval(int index0, int index1)将行从index0添加到index1,包括当前选择。- 参数
-
index0- 间隔的一端 -
index1- 间隔的另一端 - 异常
-
IllegalArgumentException- 如果index0或index1位于[getRowCount()-1]之外
-
addColumnSelectionInterval
public void addColumnSelectionInterval(int index0, int index1)将列从index0添加到index1,包括当前选择。- 参数
-
index0- 间隔的一端 -
index1- 间隔的另一端 - 异常
-
IllegalArgumentException- 如果index0或index1在外面[getColumnCount()-1]
-
removeRowSelectionInterval
public void removeRowSelectionInterval(int index0, int index1)取消选择从index0到index1的行。- 参数
-
index0- 间隔的一端 -
index1- 间隔的另一端 - 异常
-
IllegalArgumentException- 如果index0或index1位于[getRowCount()-1]之外
-
removeColumnSelectionInterval
public void removeColumnSelectionInterval(int index0, int index1)取消选择从index0到index1(含)的列。- 参数
-
index0- 间隔的一端 -
index1- 间隔的另一端 - 异常
-
IllegalArgumentException- 如果index0或index1位于[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- 行模型中的一行 - 结果
-
如果
row是有效索引并且选择该索引处的行(其中0是第一行),rowtrue
-
isColumnSelected
public boolean isColumnSelected(int column)
如果指定的索引在列的有效范围内,并且该索引的列被选中,则返回true。- 参数
-
column- 列模型中的列 - 结果
-
如果
column是有效索引,columntrue,并且选择该索引处的列(其中0是第一列)
-
isCellSelected
public boolean isCellSelected(int row, int column)如果指定的索引在行和列的有效范围内并且选定了指定位置的单元格,则返回true。- 参数
-
row- 正在查询的行 -
column- 正在查询的列 - 结果
-
如果
row和column是有效索引,columntrue,并且选择索引为(row, column)的单元格,其中第一行和第一(row, column)索引号0
-
changeSelection
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)根据两个标志的状态更新表格的选择模型:toggle和extend。 由UI接收到的键盘或鼠标事件导致的选择的大部分更改都将通过此方法传递,以便该行为可能被子类覆盖。 某些UI可能需要比此方法提供的更多功能,例如在操纵用于不连续选择的线索时,可能不会调用此方法进行某些选择更改。此实现使用以下约定:
-
toggle: false ,extend: false 。 清除以前的选择,并确保选择新的单元格。 -
toggle: false ,extend: true 。 将先前的选择从锚点扩展到指定的单元格,清除所有其他选择。 -
toggle: true ,extend: false 。 如果选择了指定的单元格,请取消选择。 如果未选择,请选择它。 -
toggle: true ,extend: true 。 将锚点的选择状态应用于其与指定单元格之间的所有单元格。
- 参数
-
rowIndex- 影响选择row -
columnIndex- 影响选择column -
toggle- 见上面的说明 -
extend- 如果为true,请扩展当前选择 - 从以下版本开始:
- 1.3
-
-
getSelectionForeground
public Color getSelectionForeground()
返回所选单元格的前景颜色。- 结果
-
Color对象的前台属性 - 另请参见:
-
setSelectionForeground(java.awt.Color),setSelectionBackground(java.awt.Color)
-
setSelectionForeground
@BeanProperty(description="A default foreground color for selected cells.") public void setSelectionForeground(Color selectionForeground)
- 参数
-
selectionForeground-Color在前台使用选定的列表项 - 另请参见:
-
getSelectionForeground(),setSelectionBackground(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.Font)
-
getSelectionBackground
public Color getSelectionBackground()
返回所选单元格的背景颜色。- 结果
-
Color用于所选列表项的背景 - 另请参见:
-
setSelectionBackground(java.awt.Color),setSelectionForeground(java.awt.Color)
-
setSelectionBackground
@BeanProperty(description="A default background color for selected cells.") public void setSelectionBackground(Color selectionBackground)
- 参数
-
selectionBackground- 用于所选单元格背景的Color - 另请参见:
-
getSelectionBackground(),setSelectionForeground(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.Font)
-
getColumn
public TableColumn getColumn(Object identifier)
返回表中的列的TableColumn对象,其标识符等于identifier,与equals进行比较。- 参数
-
identifier- 标识符对象 - 结果
-
与标识符匹配的
TableColumn对象 - 异常
-
IllegalArgumentException- 如果identifier为null或否TableColumn具有此标识符
-
convertColumnIndexToModel
public int convertColumnIndexToModel(int viewColumnIndex)
将视图中的列索引为viewColumnIndex到表模型中的列的索引。 返回模型中相应列的索引。 如果viewColumnIndex小于零,则返回viewColumnIndex。- 参数
-
viewColumnIndex- 视图中列的索引 - 结果
- 模型中相应列的索引
- 另请参见:
-
convertColumnIndexToView(int)
-
convertColumnIndexToView
public int convertColumnIndexToView(int modelColumnIndex)
将表模型中的列索引为modelColumnIndex到视图中列的索引。 返回视图中相应列的索引; 如果此列未显示,则返回-1。 如果modelColumnIndex小于零,则返回modelColumnIndex。- 参数
-
modelColumnIndex- 模型中列的索引 - 结果
- 视图中相应列的索引
- 另请参见:
-
convertColumnIndexToModel(int)
-
convertRowIndexToView
public int convertRowIndexToView(int modelRowIndex)
将该行的索引以TableModel到视图。 如果模型的内容没有被排序,模型和视图索引是相同的。- 参数
-
modelRowIndex- 根据模型的行的索引 - 结果
- 视图中相应行的索引,如果行不可见,则为-1
- 异常
-
IndexOutOfBoundsException- 如果排序启用,并将索引传递到TableModel的行数TableModel - 从以下版本开始:
- 1.6
- 另请参见:
-
TableRowSorter
-
convertRowIndexToModel
public int convertRowIndexToModel(int viewRowIndex)
将该视图的索引映射到基础TableModel。 如果模型的内容没有被排序,模型和视图索引是相同的。- 参数
-
viewRowIndex- 视图中行的索引 - 结果
- 模型中相应行的索引
- 异常
-
IndexOutOfBoundsException- 如果排序已启用,并通过方法getRowCount确定的JTable范围之外的索引 - 从以下版本开始:
- 1.6
- 另请参见:
-
TableRowSorter,getRowCount()
-
getRowCount
@BeanProperty(bound=false) public int getRowCount()
返回在JTable可以显示的行数,给定无限空间。 如果RowSorter了带有过滤器的RowSorter,则返回的行数可能与底层的TableModel。- 结果
-
在
JTable显示的行数 - 另请参见:
-
getColumnCount()
-
getColumnCount
@BeanProperty(bound=false) public int getColumnCount()
返回列模型中的列数。 请注意,这可能与表模型中的列数不同。- 结果
- 表中的列数
- 另请参见:
-
getRowCount(),removeColumn(javax.swing.table.TableColumn)
-
getColumnName
public String getColumnName(int column)
返回列位置column在视图中显示的列的名称。- 参数
-
column- 正在查询的视图中的列 - 结果
-
在第一
column列0的视图中的位置column的列的名称
-
getColumnClass
public Class<?> getColumnClass(int column)
返回列位置column在视图中显示的列的类型。- 参数
-
column- 正在查询的视图中的列 - 结果
-
在第一
column列0的视图中的位置column的列的类型
-
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)如果可以编辑row和column的单元格,则返回true。 否则,在单元格上调用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)
从这个JTable的列数组中删除aColumn。 注意:此方法不会从模型中删除数据列; 它只是删除负责显示它的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所在列的索引,如果结果不在[getColumnCount()-1]范围内,则getColumnCount()-1。- 参数
-
point- 感兴趣的位置 - 结果
-
point所在列的索引,如果结果不在[getColumnCount()-1]范围内,getColumnCount()-1 - 另请参见:
-
rowAtPoint(java.awt.Point)
-
rowAtPoint
public int rowAtPoint(Point point)
返回point所在行的索引,如果结果不在[getRowCount()-1]范围内,则getRowCount()-1。- 参数
-
point- 感兴趣的位置 - 结果
-
point所在行的索引,如果结果不在[getRowCount()-1]范围内,getRowCount()-1) - 另请参见:
-
columnAtPoint(java.awt.Point)
-
getCellRect
public Rectangle getCellRect(int row, int column, boolean includeSpacing)
返回位于row和column的交点处的单元格的矩形。 如果includeSpacing为true,则返回的值具有指定的行和列的完整高度和宽度。 如果它是假的,则返回的矩形由单元间距插入,以返回渲染或编辑组件的真实界限,因为它将在渲染期间设置。如果列索引有效但行索引小于零,则该方法返回一个矩形,其中
y和height值被适当地设置,并且x和width值都设置为零。 通常,当行或列索引指示在适当范围之外的单元格时,该方法返回一个矩形,该矩形描绘了表范围内最近单元格的最近边。 当行索引和列索引超出范围时,返回的矩形覆盖最近单元格的最近点。在所有情况下,使用此方法计算一个轴的结果的计算不会因为沿着另一个轴的计算异常而失败。 当单元格无效时,忽略
includeSpacing参数。- 参数
-
row- 所需单元格所在的行索引 -
column- 所需单元格位于显示中的列索引; 这不一定与表的数据模型中的列索引相同; 可以使用convertColumnIndexToView(int)方法将数据模型列索引转换为显示列索引 -
includeSpacing- 如果为false,则返回真实单元格边界 - 通过从列和行模型的高度和宽度中减去单元格间距来计算 - 结果
-
含有细胞在位置矩形
row,column - 另请参见:
-
getIntercellSpacing()
-
doLayout
public void doLayout()
导致此表布置其行和列。 被覆盖,以便可以调整列以调整包含父对象的大小的更改。 调整表中的一个或多个列的大小,以使所有JTable的列的总宽度等于表的宽度。在布局开始之前,该方法获得了
resizingColumn的tableHeader。 当调用该方法调整封闭窗口的大小时,resizingColumn是null。 这意味着调整大小已经发生在JTable之外,更改 - 或“delta” - 应分配给所有列,而不管这个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对列的宽度进行调整时,它绝对遵守其最小值和最大值。 因此,即使在调用此方法之后,列的总宽度仍然不等于表的宽度。 当这种情况发生时,JTable不会将自身置于AUTO_RESIZE_OFF模式,以启动滚动条,或者打破其当前自动调整大小模式的其他承诺 - 而是允许其边界设置为大于(或更小)列的最小值或最大值,意味着没有足够的空间来显示所有列,或者列不会填满JTable的边界。 这些分别导致绘画过程中绘制的一些列或一个区域被绘制在JTable的背景颜色中。在可用列中分配增量的机制在
JTable类中以私有方法提供:adjustSizes(long targetSize, final Resizable3 r, boolean inverse)以下部分提供了解释。Resizable3是一种私有接口,允许包含具有大小,优选大小,最大大小和最小大小的元素集合的任何数据结构使其元素由算法操纵。分配三角洲
概观
调用“DELTA”目标大小与r中元素的首选大小之和的差值。 个别尺寸是通过采用原始首选尺寸并添加DELTA的份额来计算的 - 该份额基于每个优选尺寸与其限制边界(最小或最大)之间的距离。
定义
调用各个约束min [i],max [i]和pref [i]。
调用它们各自的总和:MIN,MAX和PREF。
每个新的大小将使用以下方式计算:
size[i] = pref[i] + delta[i]其中每个单独的delta [i]根据以下计算:如果(DELTA <0)我们处于收缩模式,其中:
DELTA delta[i] = ------------ * (pref[i] - min[i]) (PREF - MIN)如果(DELTA> 0)我们处于扩展模式,其中:DELTA delta[i] = ------------ * (max[i] - pref[i]) (MAX - PREF)总体效果是,总大小将相同百分比k移动到总最小或最大值,该百分比保证所需空间的容纳,DELTA。
细节
对这里给出的公式的初步评估将受到在有限精度(使用ints)中进行此操作而导致的总体舍入误差。 为了处理这个问题,上面的乘法因子是不断重新计算的,这也考虑了以前迭代中的舍入误差。 结果是产生一组整数的算法,其值与所提供的
targetSize精确相加,并且通过在给定元素上均匀地扩展舍入误差来实现。当MAX和MIN界限被击中时
当
targetSize在[MIN,MAX]范围之外时,算法将所有大小设置为其适当的极限值(最大值或最小值)。 - AUTO_RESIZE_OFF:不要自动调整列的宽度。 当它们的总和超过
-
sizeColumnsToFit
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
已过时。 截至Swing 1.0.3版本,由doLayout()替换。调整表列大小以适应可用空间。- 参数
-
lastColumnOnly- 确定是否仅调整最后一列的大小 - 另请参见:
-
doLayout()
-
sizeColumnsToFit
public void sizeColumnsToFit(int resizingColumn)
作为Java 2平台v1.4的过时。 请改用doLayout()方法。- 参数
-
resizingColumn- 如果没有这样的列,则其调整大小进行此调整的列或-1 - 另请参见:
-
doLayout()
-
getToolTipText
public String getToolTipText(MouseEvent event)
覆盖JComponent的getToolTipText方法,以便允许使用渲染器的提示,如果它具有文本集。注意:对于
JTable要正确显示其渲染器的工具提示JTable必须是注册组件与ToolTipManager。 这是在initializeLocalVars自动initializeLocalVars,但如果稍后点JTable被告知setToolTipText(null),它将取消setToolTipText(null)组件,并且渲染器中的任何提示都不会显示。- 重写:
-
getToolTipText在JComponent - 参数
-
event-在MouseEvent发起ToolTip显示 - 结果
- 一个包含工具提示的字符串
- 另请参见:
-
JComponent.getToolTipText()
-
setSurrendersFocusOnKeystroke
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
设置当由于单元格的JTable转发键盘事件而激活编辑器时,此JTable中的编辑器是否获得键盘焦点。 默认情况下,此属性为false,JTable保留焦点,除非单击单元格。- 参数
-
surrendersFocusOnKeystroke- 如果编辑器在击键导致编辑器被激活时得到焦点,surrendersFocusOnKeystroketrue - 从以下版本开始:
- 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编辑特定表,列或单元格值,请从TableModel接口中的isCellEditable方法返回false。- 参数
-
row- 要编辑的行 -
column- 要编辑的列 -
e- 事件传入shouldSelectCell; 请注意,从Java 2平台v1.2开始,不再需要拨打shouldSelectCell - 结果
- 如果由于任何原因无法编辑单元格或索引无效,则为false
-
isEditing
@BeanProperty(bound=false) public boolean isEditing()
如果正在编辑单元格,则返回true。- 结果
- 如果表正在编辑单元格,则为true
- 另请参见:
-
editingColumn,editingRow
-
getEditorComponent
@BeanProperty(bound=false) public Component getEditorComponent()
返回处理编辑会话的组件。 如果没有编辑,返回null。- 结果
- 组件处理编辑会话
-
getEditingColumn
public int getEditingColumn()
返回包含当前正在编辑的单元格的列的索引。 如果没有编辑,返回-1。- 结果
- 包含当前正在编辑的单元格的列的索引; 如果没有编辑,返回-1
- 另请参见:
-
editingRow
-
getEditingRow
public int getEditingRow()
返回包含当前正在编辑的单元格的行的索引。 如果没有编辑,返回-1。- 结果
- 包含当前正在编辑的单元格的行的索引; 如果没有编辑,返回-1
- 另请参见:
-
editingColumn
-
getUI
public TableUI getUI()
返回渲染此组件的L&F对象。- 重写:
-
getUI在JComponent - 结果
-
呈现此组件的
TableUI对象
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(TableUI ui)
设置渲染此组件并重新绘制的L&F对象。- 参数
-
ui-uiL&F对象 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
来自UIManager通知说L&F已经改变了。 用UIManager替换最新版本的当前UI对象。- 重写:
-
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并从新列模型注册侦听器通知。JTableHeadercolumnModel的列模型设置为columnModel。- 参数
-
columnModel- 此表的新数据源 - 异常
-
IllegalArgumentException- 如果columnModel是null - 另请参见:
-
getColumnModel()
-
getColumnModel
public TableColumnModel getColumnModel()
返回包含此表的所有列信息的TableColumnModel。- 结果
- 提供表的列状态的对象
- 另请参见:
-
setColumnModel(javax.swing.table.TableColumnModel)
-
setSelectionModel
@BeanProperty(description="The selection model for rows.") public void setSelectionModel(ListSelectionModel selectionModel)
将此表的行选择模型设置为selectionModel并从新的选择模型注册监听器通知。- 参数
-
selectionModel- 新的选择模式 - 异常
-
IllegalArgumentException- 如果selectionModel是null - 另请参见:
-
getSelectionModel()
-
getSelectionModel
public ListSelectionModel getSelectionModel()
返回用于维持行选择状态的ListSelectionModel。- 结果
-
提供行选择状态的对象,如果不允许行选择,
null - 另请参见:
-
setSelectionModel(javax.swing.ListSelectionModel)
-
sorterChanged
public void sorterChanged(RowSorterEvent e)
RowSorterListener通知RowSorter有所改变。- Specified by:
-
sorterChanged在接口RowSorterListener - 参数
-
e- 描述变更的RowSorterEvent - 异常
-
NullPointerException- 如果e是null - 从以下版本开始:
- 1.6
-
tableChanged
public void tableChanged(TableModelEvent e)
当此表的TableModel生成TableModelEvent时调用。TableModelEvent应在模型的坐标系中构建; 当JTable收到事件时,对视图坐标系的适当映射将被执行。应用程序代码不会明确使用这些方法,它们由内部使用
JTable。请注意,从1.3开始,此方法将清除选择(如果有)。
- Specified by:
-
tableChanged在接口TableModelListener - 参数
-
e- 一个TableModelEvent通知监听器表模型已更改
-
columnAdded
public void columnAdded(TableColumnModelEvent e)
当列添加到表列模型时调用。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
columnAdded在接口TableColumnModelListener - 参数
-
e- aTableColumnModelEvent - 另请参见:
-
TableColumnModelListener
-
columnRemoved
public void columnRemoved(TableColumnModelEvent e)
从列列模型中删除列时调用。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
columnRemoved在接口TableColumnModelListener - 参数
-
e- aTableColumnModelEvent - 另请参见:
-
TableColumnModelListener
-
columnMoved
public void columnMoved(TableColumnModelEvent e)
当列重新定位时调用。 如果正在编辑单元格,则会停止编辑,重新绘制单元格。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
columnMoved在接口TableColumnModelListener - 参数
-
e- 收到的事件 - 另请参见:
-
TableColumnModelListener
-
columnMarginChanged
public void columnMarginChanged(ChangeEvent e)
当列由于边距更改而移动时调用。 如果正在编辑单元格,则会停止编辑,重新绘制单元格。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
columnMarginChanged在接口TableColumnModelListener - 参数
-
e- 收到的事件 - 另请参见:
-
TableColumnModelListener
-
columnSelectionChanged
public void columnSelectionChanged(ListSelectionEvent e)
当TableColumnModel的选择模型更改时调用。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
columnSelectionChanged在接口TableColumnModelListener - 参数
-
e- 收到的事件 - 另请参见:
-
TableColumnModelListener
-
valueChanged
public void valueChanged(ListSelectionEvent e)
当行选择更改时调用 - 重绘以显示新选择。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
valueChanged在接口ListSelectionListener - 参数
-
e- 收到的事件 - 另请参见:
-
ListSelectionListener
-
editingStopped
public void editingStopped(ChangeEvent e)
编辑完成后调用。 更改将被保存,编辑器将被丢弃。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
editingStopped在接口CellEditorListener - 参数
-
e- 收到的事件 - 另请参见:
-
CellEditorListener
-
editingCanceled
public void editingCanceled(ChangeEvent e)
编辑被取消后调用。 编辑器对象被丢弃,单元格再次呈现。应用程序代码不会明确使用这些方法,它们在JTable内部使用。
- Specified by:
-
editingCanceled在接口CellEditorListener - 参数
-
e- 收到的事件 - 另请参见:
-
CellEditorListener
-
setPreferredScrollableViewportSize
@BeanProperty(bound=false, description="The preferred size of the viewport.") public void setPreferredScrollableViewportSize(Dimension size)
设置此表的视口的首选大小。- 参数
-
size- 一个Dimension对象,指定preferredSize的JViewport其视图是此表 - 另请参见:
-
Scrollable.getPreferredScrollableViewportSize()
-
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
返回此表的视口的首选大小。- Specified by:
-
getPreferredScrollableViewportSize在接口Scrollable - 结果
-
一个
Dimension对象,其中包含显示此表的preferredSize中的JViewport - 另请参见:
-
Scrollable.getPreferredScrollableViewportSize()
-
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
返回完全暴露一个新行或列的滚动增量(以像素为单位)(取决于方向)。每次用户请求单位滚动时调用此方法。
- Specified by:
-
getScrollableUnitIncrement在接口Scrollable - 参数
-
visibleRect- 在视口内可见的视图区域 -
orientation-SwingConstants.VERTICAL或SwingConstants.HORIZONTAL -
direction- 向上/向左滚动小于零,向下/向右大于零 - 结果
- 在指定方向滚动的“单位”增量
- 另请参见:
-
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
-
getScrollableBlockIncrement
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
返回visibleRect.height或visibleRect.width,具体取决于此表的方向。 请注意,从Swing 1.1.1(Java 2 v 1.2.2)起,返回的值将确保视口在行边界上完全对齐。- Specified by:
-
getScrollableBlockIncrement在接口Scrollable - 参数
-
visibleRect- 在视口内可见的视图区域 -
orientation- SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。 -
direction- 向上/向左滚动小于0,向下/向右大于零。 - 结果
-
visibleRect.height或visibleRect.width - 另请参见:
-
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
-
getScrollableTracksViewportWidth
@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
如果autoResizeMode设置为AUTO_RESIZE_OFF,则返回false,这表示视口的宽度不能确定表的宽度。 否则返回true。- Specified by:
-
getScrollableTracksViewportWidth在接口Scrollable - 结果
-
如果
autoResizeMode设置为AUTO_RESIZE_OFF,autoResizeModefalse,否则返回true - 另请参见:
-
Scrollable.getScrollableTracksViewportWidth()
-
getScrollableTracksViewportHeight
@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
返回false以表示视口的高度不会确定表的高度,除非getFillsViewportHeight为true并且表的首选高度小于视口的高度。- Specified by:
-
getScrollableTracksViewportHeight在接口Scrollable - 结果
-
false除非getFillsViewportHeight是true,并且表需要拉伸以填充视口 - 另请参见:
-
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。- 参数
-
fillsViewportHeight- 该表是否总是足够大以填充封闭视口的高度 - 从以下版本开始:
- 1.6
- 另请参见:
-
getFillsViewportHeight(),getScrollableTracksViewportHeight()
-
getFillsViewportHeight
public boolean getFillsViewportHeight()
返回此表是否总是足够大以填充封闭视口的高度。- 结果
- 该表是否总是足够大以填充封闭视口的高度
- 从以下版本开始:
- 1.6
- 另请参见:
-
setFillsViewportHeight(boolean)
-
processKeyBinding
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
描述从类复制:JComponent调用以处理键绑定为ks作为的结果KeyEvente。 获得适当的InputMap,获取绑定,从ActionMap获取操作,然后(如果发现操作并且组件已启用)将调用notifyAction通知操作。- 重写:
-
processKeyBinding在JComponent - 参数
-
ks-KeyStroke查询 -
e-KeyEvent -
condition- 以下值之一:- JComponent.WHEN_FOCUSED
- JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
- JComponent.WHEN_IN_FOCUSED_WINDOW
-
pressed- 如果按下键,则为true - 结果
- 如果对操作有约束力,并且该操作已启用,则为true
-
createDefaultRenderers
protected void createDefaultRenderers()
为对象,数字,双精度,日期,布尔值和图标创建默认单元格渲染器。- 另请参见:
-
DefaultTableCellRenderer
-
createDefaultEditors
protected void createDefaultEditors()
为对象,数字和布尔值创建默认单元格编辑器。- 另请参见:
-
DefaultCellEditor
-
initializeLocalVars
protected void initializeLocalVars()
将表属性初始化为其默认值。
-
createDefaultDataModel
protected TableModel createDefaultDataModel()
返回默认表模型对象,它是一个DefaultTableModel。 子类可以覆盖此方法以返回不同的表模型对象。- 结果
- 默认的表模型对象
- 另请参见:
-
DefaultTableModel
-
createDefaultColumnModel
protected TableColumnModel createDefaultColumnModel()
返回默认列模型对象,它是一个DefaultTableColumnModel。 子类可以覆盖此方法以返回不同的列模型对象。- 结果
- 默认列模型对象
- 另请参见:
-
DefaultTableColumnModel
-
createDefaultSelectionModel
protected ListSelectionModel createDefaultSelectionModel()
返回默认选择模型对象,它是一个DefaultListSelectionModel。 子类可以覆盖此方法以返回不同的选择模型对象。- 结果
- 默认选择模型对象
- 另请参见:
-
DefaultListSelectionModel
-
createDefaultTableHeader
protected JTableHeader createDefaultTableHeader()
返回默认的表头对象,它是一个JTableHeader。 子类可以覆盖此方法以返回不同的表头对象。- 结果
- 默认的表头对象
- 另请参见:
-
JTableHeader
-
resizeAndRepaint
protected void resizeAndRepaint()
相当于revalidate其次是repaint。
-
getCellEditor
public TableCellEditor getCellEditor()
返回活动单元编辑器,如果表当前未编辑,则为null。- 结果
-
TableCellEditor做编辑,或null如果表当前没有编辑。 - 另请参见:
-
cellEditor,getCellEditor(int, int)
-
setCellEditor
@BeanProperty(description="The table\'s active cell editor.") public void setCellEditor(TableCellEditor anEditor)
设置活动单元格编辑器。- 参数
-
anEditor- 活动单元格编辑器 - 另请参见:
-
cellEditor
-
setEditingColumn
public void setEditingColumn(int aColumn)
设置editingColumn变量。- 参数
-
aColumn- 要编辑的单元格的列 - 另请参见:
-
editingColumn
-
setEditingRow
public void setEditingRow(int aRow)
设置editingRow变量。- 参数
-
aRow- 要编辑的单元格行 - 另请参见:
-
editingRow
-
getCellRenderer
public TableCellRenderer getCellRenderer(int row, int column)
为此行和列指定的单元格返回适当的渲染器。 如果此列的TableColumn具有非空渲染器,则返回。 如果没有,请查找此列中的数据类(使用getColumnClass),并返回此类型数据的默认渲染器。注意:在整个表包中,内部实现总是使用此方法来提供渲染器,以便这个默认行为可以被一个子类安全地覆盖。
- 参数
-
row- 要呈现的单元格行,其中0是第一行 -
column- 要呈现的单元格的列,其中0是第一列 - 结果
-
分配的渲染器
如果
null返回此类型对象的默认渲染器 - 另请参见:
-
DefaultTableCellRenderer,TableColumn.setCellRenderer(javax.swing.table.TableCellRenderer),setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)
-
prepareRenderer
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
通过在查询的单元格的值和选择状态的数据模型来准备渲染器row,column。 返回事件位置下的组件(可能为Component或JComponent)。在打印操作期间,此方法将配置渲染器,而不指示选择或对焦,以防止它们出现在打印输出中。 要根据是否打印表进行其他自定义,可以在此处或自定义渲染器中检查
JComponent.isPaintingForPrint()的值。注意:在整个表包中,内部实现总是使用此方法来准备渲染器,以便这个默认行为可以被一个子类安全地覆盖。
- 参数
-
renderer-TableCellRenderer准备 -
row- 要呈现的单元格行,其中0是第一行 -
column- 要呈现的单元格的列,其中0是第一列 - 结果
-
Component下的活动位置
-
getCellEditor
public TableCellEditor getCellEditor(int row, int column)
为row和column指定的单元格返回适当的编辑器。 如果此列的TableColumn具有非空编辑器,则返回。 如果没有,请查找此列中的数据类(使用getColumnClass),并返回此类型数据的默认编辑器。注意:在整个表包中,内部实现总是使用此方法来提供编辑器,以便这个默认行为可以被子类安全地覆盖。
- 参数
-
row- 要编辑的单元格行,其中0是第一行 -
column- 要编辑的单元格列,其中0是第一列 - 结果
-
这个单元格的编辑器
如果
null返回这种类型的单元格的默认编辑器 - 另请参见:
-
DefaultCellEditor
-
prepareEditor
public Component prepareEditor(TableCellEditor editor, int row, int column)
准备通过在查询的单元格的值和选择状态数据模型中的编辑器row,column。注意:在整个表包中,内部实现总是使用此方法来准备编辑器,以便这个默认行为可以被一个子类安全地覆盖。
- 参数
-
editor-TableCellEditor设置 -
row- 要编辑的单元格行,其中0是第一行 -
column- 要编辑的单元格列,其中0是第一列 - 结果
-
正在编辑的
Component
-
removeEditor
public void removeEditor()
丢弃编辑器对象,并释放用于单元格渲染的空间。
-
paramString
protected String paramString()
返回此表的字符串表示形式。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null。- 重写:
-
paramString中的JComponent - 结果
- 该表的字符串表示形式
-
print
public boolean print() throws PrinterException显示打印对话框的方便方法,然后打印JTable模式PrintMode.FIT_WIDTH,没有页眉或页脚文本。 在打印期间将显示具有中止选项的模态进度对话框。注意:在无头模式下,默认打印机上不显示任何对话框和打印。
- 结果
- 除非用户取消打印,否则为true
- 异常
-
SecurityException- 如果此线程不允许启动打印作业请求 -
PrinterException- 如果打印系统中的错误导致作业中止 - 从以下版本开始:
- 1.5
- 另请参见:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService),getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
-
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指定要在打印头中使用的文本,或nullfor none -
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,然后将其发送到打印机。A
boolean参数允许您指定是否向用户显示打印对话框。 如果是这样,用户可以使用对话框来更改目的地打印机或打印属性,甚至取消打印。 另外两个参数允许指定一个PrintService和打印属性。 这些参数可用于为打印对话框提供初始值,也可用于在对话框未显示时指定值。第二个
boolean参数允许您指定是否以交互模式执行打印。 如果是true,在打印期间会显示一个模式进度对话框(带有中止选项)。 此对话框还可以防止可能影响表的任何用户操作。 但是,它不能阻止表被代码修改(例如,使用SwingUtilities.invokeLater发布更新的另一个线程)。 因此,开发人员有义务确保在打印期间无其他代码以任何方式修改表(无效修改包括:大小,渲染器或底层数据中的更改)。 打印时表格更改时打印行为未定义。如果为此参数指定了
false,则不会显示对话框,并且事件发送线程上将立即开始打印。 这将阻止任何其他事件(包括重绘)被处理直到打印完成。 尽管这有效地防止了表的更改,但它并没有提供良好的用户体验。 因此,仅在没有可见GUI的应用程序打印时才建议指定false。注意:尝试显示打印对话框或以无头模式进行交互式运行时,将导致
HeadlessException。在获取可打印的文件之前,如果需要,此方法会正常终止编辑,以防止编辑器在打印结果中显示。 此外,
JTable将在打印期间准备其渲染器,以便不指出选择和重点。 为了进一步定制打印输出中的表格,开发人员可以提供自定义渲染器或油漆代码,以JComponent.isPaintingForPrint()的价值为条件 。有关如何打印表格的更多说明,请参阅
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)。- 参数
-
printMode- 可打印应使用的打印模式 -
headerFormat- 一个MessageFormat指定要在打印头中使用的文本,或nullfor none -
footerFormat- 一个MessageFormat指定要在打印页脚中使用的文本,或nullfor none -
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)
返回一个Printable用于打印此JTable。此方法适用于希望自定义
JTableprint方法使用的默认Printable实现的print。 想要简单地打印表的开发人员应该直接使用这些方法之一。可以以两种打印模式之一来请求
Printable。 在这两种模式下,它都会顺序地跨多个页面传播表格行,每页可以配置尽可能多的行。PrintMode.NORMAL指定表以当前大小打印。 在这种模式下,可能需要以类似于行的方式在页面之间传播列。 当需要时,列按照与表ComponentOrientation一致的顺序ComponentOrientation。 如果需要,PrintMode.FIT_WIDTH指定输出缩放比较小以适应每个页面上的表的整个宽度(从而使所有列)。 宽度和高度相等地缩放,保持输出的宽高比。Printable以每个页面的表格部分JTableHeader,表格JTableHeader有相应的部分,如果有的话。标题和页脚文本可以通过提供
MessageFormat参数添加到输出。 打印代码从格式请求字符串,提供可能包含在格式化字符串中的单个项目:表示当前页码的Integer。鼓励您阅读
MessageFormat的文档,因为一些字符(如单引号)是特殊的,需要转义。以下是创建可用于打印“Duke's Table:Page - ”和当前页码的
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本身将在打印期间JTable隐藏选择和对焦。 对于其他自定义,您的渲染器或绘画代码可以根据JComponent.isPaintingForPrint()的值自定义外观此外, 在调用此方法之前,您可能希望首先修改表的状态,例如取消单元格编辑或使用户的表格适当。 但是,在获取
Printable之后 ,您不能修改表的状态(无效修改包括大小或底层数据的更改)。 一旦表被更改,返回的Printable的行为是未定义的。- 参数
-
printMode- 可打印应使用的打印模式 -
headerFormat- 一个MessageFormat指定要在打印头中使用的文本,否则为null -
footerFormat- 指定要在打印页脚中使用的文本的MessageFormat,否则为null - 结果
-
一个
Printable打印这个JTable - 从以下版本开始:
- 1.5
- 另请参见:
-
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean),Printable,PrinterJob
- 在任何模式下,当页眉或页脚文本太宽,无法完全符合可打印区域时,可以从表头
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取与此JTable关联的AccessibleContext。 对于表,AccessibleContext采用AccessibleJTable的形式。 如有必要,将创建一个新的AccessibleJTable实例。- Specified by:
-
getAccessibleContext在接口Accessible - 重写:
-
getAccessibleContext在Component - 结果
- an AccessibleJTable that serves as the AccessibleContext of this JTable
-
-