public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener
JTable用于显示和编辑单元格的常规二维表。
见How to Use Tables中的Java教程面向任务的文档和使用的例子JTable 。
JTable具有许多功能,可以自定义其渲染和编辑,但为这些功能提供默认设置,以便轻松设置简单的表。 例如,要设置一个包含10行和10列数字的表:
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 10; }
public int getRowCount() { return 10;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
JTable s的通常置于一个内部JScrollPane 。 默认情况下, JTable将调整其宽度,以使水平滚动条不必要。 要允许水平滚动条,调用setAutoResizeMode(int)与AUTO_RESIZE_OFF 。 请注意,如果您希望使用JTable在一个独立的视图(A之外JScrollPane ),并想报头显示,你可以用得到它getTableHeader()并单独显示它。
要启用行的排序和过滤,请使用RowSorter 。 您可以通过以下两种方法之一设置行排序:
RowSorter 。 例如: table.setRowSorter(new TableRowSorter(model)) 。 autoCreateRowSorter属性为true ,使JTable创建RowSorter你。 例如: setAutoCreateRowSorter(true) 。 当设计使用JTable程序时,值得密切关注表示数据的数据结构。 DefaultTableModel是一个模型实现,使用Vector的Vector s Object s来存储单元格值。 除了将数据从应用程序复制到DefaultTableModel ,还可以将数据包装在TableModel接口的方法中,以便将数据直接传递到JTable ,如上例所示。 这通常导致更高效的应用程序,因为该模型可以自由选择最适合数据的内部表示。 决定是否使用AbstractTableModel或DefaultTableModel一个很好的经验法则是使用AbstractTableModel作为创建子类的基类和DefaultTableModel当不需要子类DefaultTableModel时。
源代码分发演示区域中的“TableExample”目录提供了一些完整的JTable使用示例,涵盖了如何使用JTable提供从数据库获取的数据的可编辑视图以及如何修改显示中的列使用专业的渲染器和编辑器。
JTable使用整数来引用它显示的模型的行和列。 JTable只需要一个表格范围的单元格,并使用getValueAt(int, int)在绘制期间从模型中检索值。 重要的是要记住,各种JTable方法返回的列和行索引都是JTable (视图),并不一定与模型使用相同的索引。
默认情况下,列可能会重新排列在JTable ,以便视图的列以与模型中的列不同的顺序显示。 这不影响模型的实现:当列重新排序时, JTable在JTable维护列的新顺序,并在查询模型之前转换其列索引。
因此,当编写一个TableModel时,无需监听列重新排序事件,因为模型将在自己的坐标系中被查询,而不管视图中发生了什么。 在示例区域中,示出了使用这种技术的排序算法来插入另一个坐标系,其中行的顺序被改变,而不是列的顺序。
同样使用所提供的排序和过滤功能时, RowSorter底层TableModel并不需要知道如何做排序,而RowSorter将处理它。 当使用基于JTable基于行的方法TableModel时,坐标转换将是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's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans软件包中。 请参阅XMLEncoder 。
DefaultTableModel , TableRowSorter
| Modifier and Type | Class and Description |
|---|---|
protected class |
JTable.AccessibleJTable
这个类实现了可访问性支持
JTable类。
|
static class |
JTable.DropLocation
的一个子类
TransferHandler.DropLocation表示用于一个放置位置
JTable 。
|
static class |
JTable.PrintMode
打印模式,用于打印
JTable s。
|
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy| Modifier and Type | Field and Description |
|---|---|
static int |
AUTO_RESIZE_ALL_COLUMNS
在所有调整大小操作期间,按比例调整所有列的大小。
|
static int |
AUTO_RESIZE_LAST_COLUMN
在所有调整大小操作期间,仅对最后一列应用调整。
|
static int |
AUTO_RESIZE_NEXT_COLUMN
在UI中调整列时,以相反的方式调整下一列。
|
static int |
AUTO_RESIZE_OFF
不要自动调整色谱柱宽度;
使用水平滚动条代替。
|
static int |
AUTO_RESIZE_SUBSEQUENT_COLUMNS
在UI调整期间,更改后续列以保留总宽度;
这是默认行为。
|
protected boolean |
autoCreateColumnsFromModel
如果这是true,表将查询
TableModel以构建默认列。
|
protected int |
autoResizeMode
确定表是否自动调整表的列的宽度,以占用表的整个宽度,以及如何调整大小。
|
protected TableCellEditor |
cellEditor
活动单元编辑器对象覆盖当前单元占用的屏幕空间,并允许用户改变其内容。
|
protected boolean |
cellSelectionEnabled
作为Java 2平台v1.3的过时。
|
protected TableColumnModel |
columnModel
表
TableColumnModel 。
|
protected TableModel |
dataModel
表中的
TableModel 。
|
protected Hashtable |
defaultEditorsByColumnClass
getColumnClass中的
TableModel中声明的按类索引的单元格内容的显示和编辑对象表。
|
protected Hashtable |
defaultRenderersByColumnClass
显示单元格内容的对象表,按照
getColumnClass中的
TableModel中声明的类索引。
|
protected int |
editingColumn
标识要编辑的单元格的列。
|
protected int |
editingRow
标识正在编辑的单元格行。
|
protected Component |
editorComp
如果编辑,则处理编辑的
Component 。
|
protected Color |
gridColor
网格的颜色。
|
protected Dimension |
preferredViewportSize
由
Scrollable界面用于确定初始可见区域。
|
protected int |
rowHeight
表中每行的像素高度。
|
protected int |
rowMargin
每行单元格之间的边距的像素高度。
|
protected boolean |
rowSelectionAllowed
如果此表中允许行选择,则为真。
|
protected Color |
selectionBackground
所选单元格的背景颜色。
|
protected Color |
selectionForeground
所选单元格的前景色。
|
protected ListSelectionModel |
selectionModel
该表的
ListSelectionModel用于跟踪行选择。
|
protected boolean |
showHorizontalLines
如果
showHorizontalLines为真,表格会在单元格之间绘制水平线。
|
protected boolean |
showVerticalLines
如果
showVerticalLines为真,表格会在单元格之间绘制垂直线。
|
protected JTableHeader |
tableHeader
TableHeader使用表。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
JTable()
构造一个默认
JTable是使用默认的数据模型,默认的列模型和默认的选择模型对其进行初始化。
|
JTable(int numRows, int numColumns)
构造一个
JTable与
numRows和
numColumns使用空单元格
DefaultTableModel 。
|
JTable(Object[][] rowData, Object[] columnNames)
构造一个
JTable以显示二维数组中的值
rowData ,列名称为
columnNames 。
|
JTable(TableModel dm)
构造一个
JTable ,它以
dm为数据模型,默认列模型和默认选择模型。
|
JTable(TableModel dm, TableColumnModel cm)
构造一个
JTable ,它以
dm作为数据模型
cm ,
cm作为列模型,以及默认选择模型。
|
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
构造一个
JTable ,它以
dm作为数据模型
cm ,
cm作为列模型,
sm作为选择模型。
|
JTable(Vector rowData, Vector columnNames)
构造一个
JTable以显示的值
Vector的
Vectors ,
rowData ,其列名称为
columnNames 。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addColumn(TableColumn aColumn)
将
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所在列的索引,如果结果不在[
getColumnCount() -1]范围内,则
getColumnCount() -1。
|
void |
columnMarginChanged(ChangeEvent e)
当列由于边距更改而移动时调用。
|
void |
columnMoved(TableColumnModelEvent e)
当列重新定位时调用。
|
void |
columnRemoved(TableColumnModelEvent e)
从列列模型中删除列时调用。
|
void |
columnSelectionChanged(ListSelectionEvent e)
当选择模型调用
TableColumnModel改变。
|
protected void |
configureEnclosingScrollPane()
如果这
JTable是
viewportView的封闭
JScrollPane (通常情况下),配置此
ScrollPane的,除其他事项外,安装表的
tableHeader为
columnHeaderView滚动窗格。
|
int |
convertColumnIndexToModel(int viewColumnIndex)
将视图中的列的索引
viewColumnIndex到表模型中的列的索引
viewColumnIndex 。
|
int |
convertColumnIndexToView(int modelColumnIndex)
将表模型中的列的索引
modelColumnIndex到视图中的列的索引
modelColumnIndex 。
|
int |
convertRowIndexToModel(int viewRowIndex)
将视图的行的索引映射到底层
TableModel 。
|
int |
convertRowIndexToView(int modelRowIndex)
根据
TableModel将视图的索引
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方式开始编辑单元格
row和
column ,并且这些索引处的单元格是可编辑的。
|
boolean |
editCellAt(int row, int column, EventObject e)
如果这些索引处于有效范围,那么以
row方式开始编辑单元格
row和
column ,并且这些索引处的单元格是可编辑的。
|
void |
editingCanceled(ChangeEvent e)
编辑被取消后调用。
|
void |
editingStopped(ChangeEvent e)
编辑完成后调用。
|
AccessibleContext |
getAccessibleContext()
获取与此JTable关联的AccessibleContext。
|
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处的单元格的
column 。
|
TableCellRenderer |
getCellRenderer(int row, int column)
为此行和列指定的单元格返回适当的渲染器。
|
boolean |
getCellSelectionEnabled()
如果列和列选择模型都启用,则返回true。
|
TableColumn |
getColumn(Object identifier)
当使用
equals进行比较时,返回标识符等于
identifier的表中的列的
TableColumn对象。
|
类<?> |
getColumnClass(int column)
返回列位置
column在视图中显示的列的
column 。
|
int |
getColumnCount()
返回列模型中的列数。
|
TableColumnModel |
getColumnModel()
返回
TableColumnModel包含此表所有列信息。
|
String |
getColumnName(int column)
返回列位置
column在视图中出现的列的
column 。
|
boolean |
getColumnSelectionAllowed()
如果可以选择列,则返回true。
|
TableCellEditor |
getDefaultEditor(类<?> columnClass)
返回在
TableColumn中没有设置编辑器时使用的编辑器。
|
TableCellRenderer |
getDefaultRenderer(类<?> columnClass)
返回在
TableColumn中未设置渲染器时要使用的单元格渲染器。
|
boolean |
getDragEnabled()
返回是否启用自动拖动处理。
|
JTable.DropLocation |
getDropLocation()
返回该组件应在视觉上作为放置位置的DnD操作期间组件上方指示,或位置
null如果没有位置是当前被显示。
|
DropMode |
getDropMode()
返回此组件的放置模式。
|
int |
getEditingColumn()
返回包含当前正在编辑的单元格的列的索引。
|
int |
getEditingRow()
返回包含当前正在编辑的单元格的行的索引。
|
Component |
getEditorComponent()
返回处理编辑会话的组件。
|
boolean |
getFillsViewportHeight()
返回此表是否总是足够大以填充封闭视口的高度。
|
Color |
getGridColor()
返回用于绘制网格线的颜色。
|
Dimension |
getIntercellSpacing()
返回单元格之间的水平和垂直空间。
|
TableModel |
getModel()
返回
TableModel提供此显示的数据
JTable 。
|
Dimension |
getPreferredScrollableViewportSize()
返回此表的视口的首选大小。
|
Printable |
getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
返回一个
Printable用于打印此JTable。
|
int |
getRowCount()
返回
JTable中可以显示的行数,给定无限空间。
|
int |
getRowHeight()
返回表行的高度,以像素为单位。
|
int |
getRowHeight(int row)
返回
row单元格的高度(以像素为单位)。
|
int |
getRowMargin()
获取单元格之间的空白空间(以像素为单位)的数量。
|
boolean |
getRowSelectionAllowed()
如果可以选择行,则返回true。
|
RowSorter<? extends TableModel> |
getRowSorter()
返回负责排序的对象。
|
int |
getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
返回
visibleRect.height或
visibleRect.width ,具体取决于该表的方向。
|
boolean |
getScrollableTracksViewportHeight()
返回
false ,以表示视口的高度不能确定表的高度,除非
getFillsViewportHeight为
true ,并且表的首选高度小于视口的高度。
|
boolean |
getScrollableTracksViewportWidth()
如果
autoResizeMode设置为
AUTO_RESIZE_OFF ,则返回false,这表示视口的宽度不能确定表的宽度。
|
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)
如果可以编辑
row和
column的单元格,则返回true。
|
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 。
|
protected boolean |
processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
调用以处理键绑定为
ks作为的结果
KeyEvent
e 。
|
void |
removeColumn(TableColumn aColumn)
从这个
JTable的列数组中删除
aColumn 。
|
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所在行的索引,如果结果不在[
getRowCount() -1]范围内,则
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)
将此表的列模型设置为
newModel ,并从新列模型注册侦听器通知。
|
void |
setColumnSelectionAllowed(boolean columnSelectionAllowed)
设置是否可以选择此模型中的列。
|
void |
setColumnSelectionInterval(int index0, int index1)
选择从
index0到
index1 (含)的列。
|
void |
setDefaultEditor(类<?> columnClass, TableCellEditor editor)
如果在
TableColumn中没有设置编辑器,则设置要使用的默认单元格编辑器。
|
void |
setDefaultRenderer(类<?> columnClass, TableCellRenderer renderer)
如果在
TableColumn中没有设置渲染器,则设置要使用的默认单元格渲染器。
|
void |
setDragEnabled(boolean b)
打开或关闭自动拖动处理。
|
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)
将此表的数据模型设置为
newModel ,并将其注册为新数据模型的侦听器通知。
|
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 newModel)
将此表的行选择模型设置为
newModel ,并从新选择模型注册侦听器通知。
|
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平台v1.4的过时。
|
void |
sorterChanged(RowSorterEvent e)
RowSorterListener通知说RowSorter在
RowSorter已经改变了。
|
void |
tableChanged(TableModelEvent e)
当这个表的
TableModel生成一个
TableModelEvent时调用。
|
protected void |
unconfigureEnclosingScrollPane()
逆转的效果
configureEnclosingScrollPane通过更换
columnHeaderView与封闭滚动窗格
null 。
|
void |
updateUI()
来自
UIManager说L&F已经改变了。
|
void |
valueChanged(ListSelectionEvent e)
当行选择更改时调用 - 重绘以显示新选择。
|
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, updateadd, 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, validateTreeaction, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final int AUTO_RESIZE_OFF
public static final int AUTO_RESIZE_NEXT_COLUMN
public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
public static final int AUTO_RESIZE_LAST_COLUMN
public static final int AUTO_RESIZE_ALL_COLUMNS
protected TableModel dataModel
TableModel 。
protected TableColumnModel columnModel
TableColumnModel 。
protected ListSelectionModel selectionModel
ListSelectionModel ,用于跟踪行选择。
protected JTableHeader tableHeader
TableHeader与表工作。
protected int rowHeight
protected int rowMargin
protected Color gridColor
protected boolean showHorizontalLines
showHorizontalLines为真,表格会在单元格之间绘制水平线。
protected boolean showVerticalLines
showVerticalLines为真,表格将在单元格之间绘制垂直线。
protected int autoResizeMode
protected boolean autoCreateColumnsFromModel
TableModel以构建默认的列集,如果这是真的。
protected Dimension preferredViewportSize
Scrollable界面用于确定初始可见区域。
protected boolean rowSelectionAllowed
protected boolean cellSelectionEnabled
rowSelectionAllowed属性和columnSelectionAllowed的财产columnModel代替。
或使用方法getCellSelectionEnabled 。
protected transient Component editorComp
Component正在处理编辑。
protected transient TableCellEditor cellEditor
null如果表当前没有编辑。
protected transient int editingColumn
protected transient int editingRow
protected transient Hashtable defaultRenderersByColumnClass
getColumnClass中的
TableModel中声明的类进行索引。
protected transient Hashtable defaultEditorsByColumnClass
TableModel接口中
getColumnClass中声明的按类索引的单元格内容的显示和编辑对象表。
protected Color selectionForeground
protected Color selectionBackground
public JTable()
JTable是使用默认的数据模型,默认的列模型和默认的选择模型对其进行初始化。
public JTable(TableModel dm)
JTable ,它使用
dm作为数据模型,默认列模型和默认选择模型进行初始化。
dm - 表的数据模型
createDefaultColumnModel() ,
createDefaultSelectionModel()
public JTable(TableModel dm, TableColumnModel cm)
JTable ,作为数据模型使用
dm ,
cm作为列模型,以及默认选择模型。
dm - 表的数据模型
cm - 表的列模型
createDefaultSelectionModel()
public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
JTable ,它以dm作为数据模型cm , cm作为列模型,以及sm作为选择模型。
如果任何参数为null, null该方法将初始化具有相应默认模型的表。
该autoCreateColumnsFromModel标志设置为false,如果cm非空,否则将被设置为true,列模型中填充了适合TableColumns为列dm 。
dm - 表的数据模型
cm - 表的列模型
sm - 表的行选择模型
createDefaultDataModel() ,
createDefaultColumnModel() ,
createDefaultSelectionModel()
public JTable(int numRows,
int numColumns)
JTable与numRows和numColumns使用空单元格DefaultTableModel 。
列将具有“A”,“B”,“C”等形式的名称。
numRows - 表所包含的行数
numColumns - 表所包含的列数
DefaultTableModel
public JTable(Vector rowData, Vector columnNames)
JTable以显示的值Vector的Vectors , rowData ,其列名称为columnNames 。
该Vectors包含在rowData应该包含该行的值。
换句话说,可以用以下代码获得第1列第5列的单元格值:
((Vector)rowData.elementAt(1)).elementAt(5);
rowData - 新表的数据
columnNames - 每列的名称
public void addNotify()
configureEnclosingScrollPane方法。
addNotify在
JComponent
configureEnclosingScrollPane()
protected void configureEnclosingScrollPane()
JTable是viewportView的封闭JScrollPane (通常情况下),配置此ScrollPane的,除其他事项外,安装表的tableHeader为columnHeaderView滚动窗格。
当JTable被添加到JScrollPane以通常的方式,使用new JScrollPane(myTable) , addNotify被称为在JTable (当表被添加到视口)。
JTable的addNotify方法依次调用此方法,该方法受到保护,以便该子类可以覆盖此默认安装过程。
addNotify()
public void removeNotify()
unconfigureEnclosingScrollPane方法。
protected void unconfigureEnclosingScrollPane()
configureEnclosingScrollPane通过更换columnHeaderView与封闭滚动窗格null 。
JTable的removeNotify方法调用此方法,该方法受到保护,以便这个默认卸载过程可以被子类覆盖。
removeNotify() ,
configureEnclosingScrollPane()
@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
new JScrollPane(aTable) 。
new JScrollPane(aTable) 。
public void setTableHeader(JTableHeader tableHeader)
tableHeader使用这个JTable到newHeader 。
有一个null tableHeader是合法的。
tableHeader - new tableHeader
getTableHeader()
public JTableHeader getTableHeader()
tableHeader使用的
JTable 。
tableHeader
setTableHeader(javax.swing.table.JTableHeader)
public void setRowHeight(int rowHeight)
rowHeight ,重新验证和重新绘制。
单元格的高度将等于行高减去行边距。
rowHeight - 新行高
IllegalArgumentException - 如果
rowHeight小于1
getRowHeight()
public int getRowHeight()
setRowHeight(int)
public void setRowHeight(int row,
int rowHeight)
row的高度设置为rowHeight ,重新验证和重绘。
该行中的单元格的高度将等于行高减去行边距。
row - 其高度正在更改的行
rowHeight - 新行高,以像素为单位
IllegalArgumentException - 如果
rowHeight小于1
public int getRowHeight(int row)
row单元格的高度(以像素为单位)。
row - 要返回高度的行
public void setRowMargin(int rowMargin)
rowMargin - 一行中单元格之间的像素数
getRowMargin()
public int getRowMargin()
getIntercellSpacing().height 。
setRowMargin(int)
public void setIntercellSpacing(Dimension intercellSpacing)
rowMargin和
columnMargin - 单元格之间的空间的高度和宽度 - 为
intercellSpacing 。
intercellSpacing - 一个
Dimension指定单元格之间的新宽度和高度
getIntercellSpacing()
public Dimension getIntercellSpacing()
setIntercellSpacing(java.awt.Dimension)
public void setGridColor(Color gridColor)
gridColor并重新显示。
默认颜色是外观和感觉依赖。
gridColor - 网格线的新颜色
IllegalArgumentException - 如果
gridColor是
null
getGridColor()
public Color getGridColor()
setGridColor(java.awt.Color)
public void setShowGrid(boolean showGrid)
showGrid是真的;
如果它是假的,它不是。
没有getShowGrid方法,因为这个状态保存在两个变量 - showHorizontalLines和showVerticalLines - 每个showVerticalLines可以独立查询。
showGrid - 如果表视图应绘制网格线,则为true
setShowVerticalLines(boolean) ,
setShowHorizontalLines(boolean)
public void setShowHorizontalLines(boolean showHorizontalLines)
showHorizontalLines是真的;
如果它是假的,它不是。
showHorizontalLines - 如果表视图应绘制水平线,则为true
getShowHorizontalLines() ,
setShowGrid(boolean) ,
setShowVerticalLines(boolean)
public void setShowVerticalLines(boolean showVerticalLines)
showVerticalLines是真的;
如果它是假的,它不是。
showVerticalLines - 如果表视图应绘制垂直线,则为true
getShowVerticalLines() ,
setShowGrid(boolean) ,
setShowHorizontalLines(boolean)
public boolean getShowHorizontalLines()
setShowHorizontalLines(boolean)
public boolean getShowVerticalLines()
setShowVerticalLines(boolean)
public void setAutoResizeMode(int mode)
doLayout() 。
mode - 5个合法值之一:AUTO_RESIZE_OFF,AUTO_RESIZE_NEXT_COLUMN,AUTO_RESIZE_SUBSEQUENT_COLUMNS,AUTO_RESIZE_LAST_COLUMN,AUTO_RESIZE_ALL_COLUMNS
getAutoResizeMode() ,
doLayout()
public int getAutoResizeMode()
setAutoResizeMode(int) ,
doLayout()
public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
autoCreateColumnsFromModel标志。
如果autoCreateColumnsFromModel从false更改为true,则此方法调用createDefaultColumnsFromModel 。
autoCreateColumnsFromModel - 如果
JTable应该自动创建列,则为true
getAutoCreateColumnsFromModel() ,
createDefaultColumnsFromModel()
public boolean getAutoCreateColumnsFromModel()
setModel将清除任何现有列,并从新模型中创建新列。
另外,如果在事件tableChanged通知指定整个表已更改,则列将被重建。
默认值为true。
setAutoCreateColumnsFromModel(boolean) ,
createDefaultColumnsFromModel()
public void createDefaultColumnsFromModel()
getColumnCount中所定义的方法TableModel接口。
根据模型信息创建新列之前清除任何现有的列。
public void setDefaultRenderer(类<?> columnClass, TableCellRenderer renderer)
TableColumn中未设置渲染器,则设置要使用的默认单元格渲染器。
如果渲染器为null ,则删除此列类的默认渲染器。
columnClass - 设置此columnClass的默认单元格渲染器
renderer - 用于此columnClass的默认单元格渲染器
getDefaultRenderer(java.lang.Class<?>) ,
setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor)
public TableCellRenderer getDefaultRenderer(类<?> columnClass)
TableColumn中未设置渲染器时要使用的单元格渲染器。
在渲染单元格期间,根据列中单元格的类从Hashtable条目中提取渲染器。
如果没有这个columnClass的条目,则该方法返回最具体的超类的条目。
该JTable安装用于条目Object , Number和Boolean ,所有这些都可以被修改或替换。
columnClass - 返回此columnClass的默认单元格渲染器
setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer) ,
getColumnClass(int)
public void setDefaultEditor(类<?> columnClass, TableCellEditor editor)
TableColumn中没有设置编辑器,则设置要使用的默认单元格编辑器。
如果表中或表中的特定列不需要编辑,请使用isCellEditable中的TableModel方法确保此JTable不会在这些列中启动编辑器。
如果编辑器是null ,则删除此列类的默认编辑器。
columnClass - 为此columnClass设置默认单元格编辑器
editor - 用于此columnClass的默认单元格编辑器
TableModel.isCellEditable(int, int) ,
getDefaultEditor(java.lang.Class<?>) ,
setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)
public TableCellEditor getDefaultEditor(类<?> columnClass)
TableColumn中没有设置编辑器时使用的编辑器。
在编辑单元格期间,编辑器根据列中单元格的类别从Hashtable获取。
如果没有这个columnClass的条目,该方法返回最具体的超类的条目。
该JTable安装用于条目Object , Number和Boolean ,所有这些都可以被修改或替换。
columnClass - 返回此columnClass的默认单元格编辑器
setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor) ,
getColumnClass(int)
public void setDragEnabled(boolean b)
true ,表TransferHandler需要为non-null 。
dragEnabled属性的默认值为false 。
尊重这个属性的工作,并承认用户拖动手势,在于外观和感觉的实现,特别是表TableUI 。 当启用自动拖动处理,大多数的外观和感觉(包括那些子类BasicLookAndFeel )开始的拖动并且每当用户按下在项上鼠标按钮(在单个选择模式)拖放操作或选择(在其它选择模式)和然后将鼠标移动几个像素。 因此,将此属性设置为true可以对选择行为如何产生微妙的影响。
如果使用忽略此属性的外观,您仍然可以通过在表exportAsDrag上调用exportAsDrag来开始拖放TransferHandler 。
b - 是否启用自动拖动处理
HeadlessException - 如果
b是
true和
GraphicsEnvironment.isHeadless()返回
true
GraphicsEnvironment.isHeadless() , getDragEnabled() , JComponent.setTransferHandler(javax.swing.TransferHandler) , TransferHandler
public boolean getDragEnabled()
dragEnabled属性
setDragEnabled(boolean)
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
getDropMode() , getDropLocation() , JComponent.setTransferHandler(javax.swing.TransferHandler) , TransferHandler
public final DropMode getDropMode()
setDropMode(javax.swing.DropMode)
public final JTable.DropLocation getDropLocation()
null如果没有位置是当前被显示。
此方法不适用于从TransferHandler查询放置位置,因为放置位置仅在TransferHandler的canImport已返回并已允许显示位置之后设置。
当此属性更改时,组件将触发名为“dropLocation”的属性更改事件。
setDropMode(javax.swing.DropMode) ,
TransferHandler.canImport(TransferHandler.TransferSupport)
public void setAutoCreateRowSorter(boolean autoCreateRowSorter)
RowSorter 。
当调用setAutoCreateRowSorter(true)时,将TableRowSorter创建一个TableRowSorter并安装在表上。 虽然autoCreateRowSorter属性仍保留true ,但每次更改模型时,将创建一个新的TableRowSorter并将其设置为表的行排序。 autoCreateRowSorter属性的默认值为false 。
autoCreateRowSorter -无论是否
RowSorter应自动创建
TableRowSorter
public boolean getAutoCreateRowSorter()
true如果每当模型更改时,新RowSorter应创建并安装作为该表的排序;
否则返回false 。
RowSorter ,则为true
public void setUpdateSelectionOnSort(boolean update)
update - 是否更新排序选择
public boolean getUpdateSelectionOnSort()
public void setRowSorter(RowSorter<? extends TableModel> sorter)
RowSorter 。
RowSorter用于为RowSorter提供排序和JTable 。
此方法清除选择并重置任何可变行高。
此方法PropertyChangeEvent时触发PropertyChangeEvent,属性名称为"rowSorter" 。 为了向后兼容,此方法触发一个额外的事件,其属性名称为"sorter" 。
如果的底层模型RowSorter从不同之处在于这种JTable不确定的行为会导致。
sorter - RowSorter ;
null转为排序
TableRowSorter
public RowSorter<? extends TableModel> getRowSorter()
public void setSelectionMode(int selectionMode)
注意: JTable提供了处理列和行选择的所有方法。 当设置状态,如setSelectionMode ,它不仅更新行选择模型的模式,而且还将设置的选择模型相似的价值观columnModel 。 如果要让行和列选择模型以不同的模式运行,请直接进行设置。
行列列选择型号为JTable默认使用DefaultListSelectionModel ,以便JTable工作方式与JList相同。 查看setSelectionMode的方法JList有关模式的详细信息。
public void setRowSelectionAllowed(boolean rowSelectionAllowed)
rowSelectionAllowed - 如果此模型允许行选择,则为true
getRowSelectionAllowed()
public boolean getRowSelectionAllowed()
setRowSelectionAllowed(boolean)
public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
columnSelectionAllowed - 如果此模型将允许列选择,则为true
getColumnSelectionAllowed()
public boolean getColumnSelectionAllowed()
setColumnSelectionAllowed(boolean)
public void setCellSelectionEnabled(boolean cellSelectionEnabled)
isCellSelected以更改此默认行为。
该方法等效于设置两个rowSelectionAllowed属性和columnSelectionAllowed中的属性columnModel所提供的值。
cellSelectionEnabled - 如果允许同时进行行和列选择,则为true
getCellSelectionEnabled() ,
isCellSelected(int, int)
public boolean getCellSelectionEnabled()
getRowSelectionAllowed() && getColumnSelectionAllowed() 。
setCellSelectionEnabled(boolean)
public void selectAll()
public void clearSelection()
public void setRowSelectionInterval(int index0,
int index1)
index0到
index1 (含)的行。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1在外面[
getRowCount() -1]
public void setColumnSelectionInterval(int index0,
int index1)
index0到
index1 (包括)的列。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1在[
getColumnCount() -1]之外
public void addRowSelectionInterval(int index0,
int index1)
index0添加到
index1 (包括)到当前选择。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1位于[
getRowCount() -1]之外
public void addColumnSelectionInterval(int index0,
int index1)
index0到
index1 ,包容性,为当前选择。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1在[
getColumnCount() -1]之外
public void removeRowSelectionInterval(int index0,
int index1)
index0到
index1包括)的行。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1在[
getRowCount() -1]之外
public void removeColumnSelectionInterval(int index0,
int index1)
index0到
index1含)的列。
index0 - 间隔的一端
index1 - 间隔的另一端
IllegalArgumentException - 如果
index0或
index1在外面[
getColumnCount() -1]
public int getSelectedRow()
public int getSelectedColumn()
public int[] getSelectedRows()
getSelectedRow()
public int[] getSelectedColumns()
getSelectedColumn()
public int getSelectedRowCount()
public int getSelectedColumnCount()
public boolean isRowSelected(int row)
row是有效索引并且选择该索引处的行(其中0是第一行),则为true
public boolean isColumnSelected(int column)
column - 列模型中的列
column是有效索引并且选择该索引处的列(其中0是第一列),则为true
public boolean isCellSelected(int row,
int column)
row - 正在查询的行
column - 正在查询的列
row和
column是有效索引,则为true,并且选择索引为
(row, column)的单元格,其中第一行和第一列为索引号0
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,请扩展当前选择
public Color getSelectionForeground()
Color对象的前台属性
setSelectionForeground(java.awt.Color) ,
setSelectionBackground(java.awt.Color)
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)
public Color getSelectionBackground()
Color用于所选列表项的背景
setSelectionBackground(java.awt.Color) ,
setSelectionForeground(java.awt.Color)
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)
public TableColumn getColumn(Object identifier)
equals进行比较时,返回标识符等于
identifier的表中的列的
TableColumn对象。
identifier - 标识符对象
TableColumn对象
IllegalArgumentException - 如果
identifier是
null或否
TableColumn有这个标识符
public int convertColumnIndexToModel(int viewColumnIndex)
viewColumnIndex到表模型中的列的索引viewColumnIndex 。
返回模型中相应列的索引。
如果viewColumnIndex小于零,则返回viewColumnIndex 。
viewColumnIndex - 视图中列的索引
convertColumnIndexToView(int)
public int convertColumnIndexToView(int modelColumnIndex)
modelColumnIndex到视图中的列的索引modelColumnIndex 。
返回视图中相应列的索引;
如果此列未显示,则返回-1。
如果modelColumnIndex小于零,返回modelColumnIndex 。
modelColumnIndex - 模型中列的索引
convertColumnIndexToModel(int)
public int convertRowIndexToView(int modelRowIndex)
TableModel映射行的索引。
如果模型的内容没有被排序,模型和视图索引是相同的。
modelRowIndex - 该行的索引在模型方面
IndexOutOfBoundsException - 如果排序启用,并将索引传递到
TableModel的行数
TableModel
TableRowSorter
public int convertRowIndexToModel(int viewRowIndex)
TableModel 。
如果模型的内容没有被排序,模型和视图索引是相同的。
viewRowIndex - 视图中行的索引
IndexOutOfBoundsException - 如果排序启用,并通过方法
getRowCount确定的
JTable范围之外的索引
TableRowSorter , getRowCount()
public int getRowCount()
JTable中可以显示的行数,给定无限空间。
如果RowSorter了带有过滤器的RowSorter,则返回的行数可能与底层TableModel的行数有所不同。
JTable
getColumnCount()
public int getColumnCount()
getRowCount() ,
removeColumn(javax.swing.table.TableColumn)
public String getColumnName(int column)
column在视图中显示的列的
column 。
column - 正在查询的视图中的列
column处的列的名称
public 类<?> getColumnClass(int column)
column在视图中显示的列的
column 。
column - 正在查询的视图中的列
column处的列的类型
public Object getValueAt(int row, int column)
row和column 。
注意 :列以表视图的显示顺序指定,而不是在TableModel的列顺序中。 这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将更改。 同时,用户的操作不会影响模型的列排序。
row - 要查询其值的行
column - 要查询其值的列
public void setValueAt(Object aValue, int row, int column)
row和column 。
注意 :列以表视图的显示顺序指定,而不是在TableModel的列顺序中。 这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将更改。 同时,用户的操作不会影响模型的列排序。 aValue是新值。
aValue - 新的价值
row - 要更改的单元格行
column - 要更改的单元格的列
getValueAt(int, int)
public boolean isCellEditable(int row,
int column)
row和column的单元格,则返回true。
否则,在单元格上调用setValueAt将不起作用。
注意 :列以表视图的显示顺序指定,而不是在TableModel的列顺序中指定。 这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将更改。 同时,用户的操作不会影响模型的列排序。
row - 要查询其值的行
public void addColumn(TableColumn aColumn)
public void removeColumn(TableColumn aColumn)
JTable的列数组中删除aColumn 。
注意:此方法不会从模型中删除数据列;
它只是删除了TableColumn ,这是负责显示它。
aColumn - 要删除的
TableColumn
addColumn(javax.swing.table.TableColumn)
public void moveColumn(int column,
int targetColumn)
column移动到视图中的列targetColumn当前占用的位置。
targetColumn的旧列向左或向右移动腾出空间。
column - 要移动的列的索引
targetColumn - 列的新索引
public int columnAtPoint(Point point)
point所在列的索引,如果结果不在[
getColumnCount() -1]范围内,则
getColumnCount() -1。
point - 感兴趣的位置
point所在列的索引,如果结果不在[
getColumnCount() -1]范围内,
getColumnCount() -1
rowAtPoint(java.awt.Point)
public int rowAtPoint(Point point)
point位于的行的索引,如果结果不在[
getRowCount() -1]范围内,则
getRowCount() -1。
point - 感兴趣的位置
point所在行的索引,如果结果不在[
getRowCount() -1]范围内,
getRowCount() -1
columnAtPoint(java.awt.Point)
public Rectangle getCellRect(int row, int column, boolean includeSpacing)
row和column处的单元格的column 。
如果includeSpacing为true,则返回的值具有指定的行和列的完整高度和宽度。
如果它是假的,则返回的矩形由单元间距插入,以返回呈现或编辑组件的真实边界,因为它将在渲染期间设置。
如果列索引有效但是行索引小于零,则该方法返回一个矩形,其中y和height值被适当地设置,并且x和width都被设置为零。 通常,当行或列索引指示在适当范围之外的单元格时,该方法返回一个矩形,该矩形描绘了表范围内最近单元格的最近边。 当行索引和列索引超出范围时,返回的矩形覆盖最近单元格的最近点。
在所有情况下,使用此方法计算一个轴的结果的计算不会因为沿着另一个轴的计算异常而失败。 当单元格无效时, includeSpacing参数将被忽略。
row - 所需单元格所在的行索引
column - 所需单元格位于显示中的列索引;
这不一定与表的数据模型中的列索引相同;
convertColumnIndexToView(int)方法可用于将数据模型列索引转换为显示列索引
includeSpacing - 如果为false,则返回真实单元格边界 - 通过从列和行模型的高度和宽度中减去单元格间距来计算
row
column
getIntercellSpacing()
public void doLayout()
JTable的列的总宽度等于表的宽度。
在布局开始之前,该方法获得resizingColumn的tableHeader 。 当调用该方法调整封闭窗口的大小时, resizingColumn为null 。 这意味着调整大小已经发生在JTable ,而更改 - 或“delta” - 应该分配给所有的列,而不管这个JTable的自动调整大小模式。
如果resizingColumn不是null ,它是表中已经改变了大小而不是表本身的列之一。 在这种情况下,自动调整大小模式控制在可用列之间分配额外(或赤字)空间的方式。
模式是:
Viewport的宽度时,使用水平滚动条来容纳列。 如果JTable未包含在JScrollPane则可能会使部分表不可见。 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 ,其值与所提供的targetSize精确相加,并且通过将舍入误差均匀地扩展到给定的元素上来实现。
当targetSize超出[MIN,MAX]范围时,算法将所有大小设置为其适当的极限值(最大值或最小值)。
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
doLayout()取代。
doLayout()
public void sizeColumnsToFit(int resizingColumn)
doLayout()方法。
resizingColumn - 如果没有此列,调整大小进行此调整的列或-1
doLayout()
public String getToolTipText(MouseEvent event)
JComponent的getToolTipText方法,以便允许渲染器的提示被使用,如果它有文本集。
注意:对于JTable ,要正确显示其渲染JTable工具提示JTable必须是已注册的组件与ToolTipManager 。 这是在initializeLocalVars中initializeLocalVars完成的,但如果稍后点JTable被告知setToolTipText(null)它将取消注册表组件,并且渲染器中的任何提示将不再显示。
getToolTipText在
JComponent
JComponent.getToolTipText()
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
surrendersFocusOnKeystroke - 如果编辑器在击键导致编辑器被激活时得到焦点,则为true
getSurrendersFocusOnKeystroke()
public boolean getSurrendersFocusOnKeystroke()
setSurrendersFocusOnKeystroke(boolean)
public boolean editCellAt(int row,
int column)
row方式开始编辑单元格row和column ,并且这些索引的单元格是可编辑的。
请注意,这是一个方便的方法editCellAt(int, int, null) 。
row - 要编辑的行
column - 要编辑的列
public boolean editCellAt(int row,
int column,
EventObject e)
row方式开始编辑单元格row和column ,并且这些索引处的单元格是可编辑的。
为防止JTable编辑特定表,列或单元格值,请从isCellEditable中的TableModel方法返回false。
row - 要编辑的行
column - 要编辑的列
e - 传递到shouldSelectCell事件;
请注意,从Java 2平台v1.2开始,不再对shouldSelectCell进行调用
public boolean isEditing()
editingColumn ,
editingRow
public Component getEditorComponent()
public int getEditingColumn()
editingRow
public int getEditingRow()
editingColumn
public TableUI getUI()
TableUI对象
public void setUI(TableUI ui)
ui - TableUI L&F对象
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
UIManager的L&F已经更改。
从UIManager替换最新版本的当前UI对象。
updateUI在
JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID在
JComponent类
JComponent.getUIClassID() ,
UIDefaults.getUI(javax.swing.JComponent)
public void setModel(TableModel dataModel)
newModel ,并将其注册为来自新数据模型的侦听器通知。
dataModel - 此表的新数据源
IllegalArgumentException - 如果
newModel是
null
getModel()
public TableModel getModel()
TableModel提供此显示的数据
JTable 。
TableModel提供了这个
JTable显示的数据
setModel(javax.swing.table.TableModel)
public void setColumnModel(TableColumnModel columnModel)
newModel ,并从新列模型注册侦听器通知。
JTableHeader的列模型设置为columnModel 。
columnModel - 此表的新数据源
IllegalArgumentException - 如果
columnModel是
null
getColumnModel()
public TableColumnModel getColumnModel()
TableColumnModel包含此表所有列信息。
setColumnModel(javax.swing.table.TableColumnModel)
public void setSelectionModel(ListSelectionModel newModel)
newModel ,并从新选择模型注册收听者通知。
newModel - 新的选择模式
IllegalArgumentException - 如果
newModel是
null
getSelectionModel()
public ListSelectionModel getSelectionModel()
ListSelectionModel用来维持行选择状态。
null
setSelectionModel(javax.swing.ListSelectionModel)
public void sorterChanged(RowSorterEvent e)
RowSorterListener通知,
RowSorter已经改变了某种方式。
sorterChanged在接口
RowSorterListener
e - 描述
RowSorterEvent RowSorterEvent
NullPointerException - 如果
e是
null
public void tableChanged(TableModelEvent e)
TableModel生成一个TableModelEvent时调用。
TableModelEvent应在模型的坐标系中构建;
适当的映射到视图的坐标系被该执行JTable当它接收到该事件。
应用程序代码不会明确使用这些方法,它们由JTable使用JTable 。
请注意,从1.3开始,此方法将清除选择(如果有)。
tableChanged在界面
TableModelListener
public void columnAdded(TableColumnModelEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
columnAdded在界面
TableColumnModelListener
TableColumnModelListener
public void columnRemoved(TableColumnModelEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
columnRemoved在界面
TableColumnModelListener
TableColumnModelListener
public void columnMoved(TableColumnModelEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
columnMoved在界面
TableColumnModelListener
e - 收到的事件
TableColumnModelListener
public void columnMarginChanged(ChangeEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
columnMarginChanged在界面
TableColumnModelListener
e - 收到的事件
TableColumnModelListener
public void columnSelectionChanged(ListSelectionEvent e)
TableColumnModel改变。
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
columnSelectionChanged在界面
TableColumnModelListener
e - 收到的事件
TableColumnModelListener
public void valueChanged(ListSelectionEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
valueChanged在接口
ListSelectionListener
e - 收到的事件
ListSelectionListener
public void editingStopped(ChangeEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
editingStopped在界面
CellEditorListener
e - 收到的事件
CellEditorListener
public void editingCanceled(ChangeEvent e)
应用程序代码不会明确使用这些方法,它们在JTable内部使用。
editingCanceled在接口
CellEditorListener
e - 收到的事件
CellEditorListener
public void setPreferredScrollableViewportSize(Dimension size)
size - 一个
Dimension对象,指定
preferredSize的一个
JViewport ,其视图是此表
Scrollable.getPreferredScrollableViewportSize()
public Dimension getPreferredScrollableViewportSize()
getPreferredScrollableViewportSize在接口
Scrollable
Dimension对象,其中包含
preferredSize的
JViewport显示此表
Scrollable.getPreferredScrollableViewportSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
每次用户请求单位滚动时调用此方法。
getScrollableUnitIncrement在接口
Scrollable
visibleRect - 在视口内可见的视图区域
orientation -
SwingConstants.VERTICAL或
SwingConstants.HORIZONTAL
direction - 向上/向左滚动小于零,大于零为向下/向右
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
visibleRect.height或visibleRect.width ,具体取决于该表的方向。
请注意,从Swing 1.1.1(Java 2 v 1.2.2)起,返回的值将确保视口在行边界上完全对齐。
getScrollableBlockIncrement在界面
Scrollable
visibleRect - 在视口内可见的视图区域
orientation - SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。
direction - 向上/向左滚动小于零,向下/向右大于零。
visibleRect.height或
visibleRect.width每取向
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
public boolean getScrollableTracksViewportWidth()
autoResizeMode设置为AUTO_RESIZE_OFF ,则返回false,这表示视口的宽度不会确定表的宽度。
否则返回true。
getScrollableTracksViewportWidth在界面
Scrollable
autoResizeMode设置为
AUTO_RESIZE_OFF ,否则返回true
Scrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
false以表示视口的高度不能确定表的高度,除非
getFillsViewportHeight为
true ,而表的首选高度小于视口的高度。
getScrollableTracksViewportHeight在接口
Scrollable
false ,除非
getFillsViewportHeight是
true ,并且表需要拉伸以填充视口
Scrollable.getScrollableTracksViewportHeight() ,
setFillsViewportHeight(boolean) ,
getFillsViewportHeight()
public void setFillsViewportHeight(boolean fillsViewportHeight)
false 。
fillsViewportHeight - 此表是否总是足够大以填充封闭视口的高度
getFillsViewportHeight() ,
getScrollableTracksViewportHeight()
public boolean getFillsViewportHeight()
setFillsViewportHeight(boolean)
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
JComponent
ks作为的结果KeyEvent e 。
获得适当的InputMap ,获取绑定,从ActionMap获取操作,然后(如果发现操作并且组件已启用)将调用notifyAction通知操作。
processKeyBinding在
JComponent类
ks -
KeyStroke查询
e -
KeyEvent
condition - 以下值之一:
pressed - 如果按下键,则为true
protected void createDefaultRenderers()
DefaultTableCellRenderer
protected void createDefaultEditors()
DefaultCellEditor
protected void initializeLocalVars()
protected TableModel createDefaultDataModel()
DefaultTableModel 。
子类可以覆盖此方法以返回不同的表模型对象。
DefaultTableModel
protected TableColumnModel createDefaultColumnModel()
DefaultTableColumnModel 。
子类可以覆盖此方法以返回不同的列模型对象。
DefaultTableColumnModel
protected ListSelectionModel createDefaultSelectionModel()
DefaultListSelectionModel 。
子类可以覆盖此方法以返回不同的选择模型对象。
DefaultListSelectionModel
protected JTableHeader createDefaultTableHeader()
JTableHeader 。
子类可以覆盖此方法以返回不同的表头对象。
JTableHeader
protected void resizeAndRepaint()
revalidate其次是
repaint 。
public TableCellEditor getCellEditor()
null如果该表当前没有被编辑。
TableCellEditor做编辑,或
null如果表当前没有编辑。
cellEditor ,
getCellEditor(int, int)
public void setCellEditor(TableCellEditor anEditor)
anEditor - 活动单元格编辑器
cellEditor
public void setEditingColumn(int aColumn)
editingColumn变量。
aColumn - 要编辑的单元格的列
editingColumn
public void setEditingRow(int aRow)
editingRow变量。
aRow - 要编辑的单元格行
editingRow
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)
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
row , column 。
返回事件位置下的组件(可能是Component或JComponent )。
在打印操作期间,此方法将配置渲染器,而不指示选择或对焦,以防止它们出现在打印输出中。 要根据是否打印表进行其他自定义,可以在此处或自定义渲染器中检查JComponent.isPaintingForPrint()的值。
注意:在整个表包中,内部实现总是使用此方法来准备渲染器,以便这个默认行为可以被一个子类安全地覆盖。
renderer -
TableCellRenderer准备
row - 要渲染的单元格行,其中0是第一行
column - 要呈现的单元格的列,其中0是第一列
Component下的活动地点
public TableCellEditor getCellEditor(int row, int column)
row和column的单元格返回适当的编辑器。
如果此列的TableColumn具有非空编辑器,则返回。
如果没有,请查找此列中的数据类(使用getColumnClass ),并返回此类型数据的默认编辑器。
注意:在整个表包中,内部实现总是使用此方法来提供编辑器,以便这个默认行为可以被子类安全地覆盖。
row - 要编辑的单元格行,其中0是第一行
column - 要编辑的单元格列,其中0是第一列
null返回这种类型的单元格的默认编辑器
DefaultCellEditor
public Component prepareEditor(TableCellEditor editor, int row, int column)
row , column 。
注意:在整个表包中,内部实现总是使用此方法来准备编辑器,以便这个默认行为可以被一个子类安全地覆盖。
editor -
TableCellEditor设置
row - 要编辑的单元格行,其中0是第一行
column - 要编辑的单元格列,其中0是第一列
Component
public void removeEditor()
protected String paramString()
null 。
paramString在
JComponent
public boolean print()
throws PrinterException
JTable模式PrintMode.FIT_WIDTH ,没有页眉或页脚文本。
在打印期间将显示具有中止选项的模态进度对话框。
注意:在无头模式下,默认打印机上不显示任何对话框和打印。
SecurityException - 如果此线程不允许启动打印作业请求
PrinterException - 如果打印系统中的错误导致作业中止
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService) ,
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode) throws PrinterException
JTable ,没有页眉或页脚文本。
在打印期间将显示具有中止选项的模态进度对话框。
注意:在无头模式下,默认打印机上不显示任何对话框和打印。
printMode - 可打印应使用的打印模式
SecurityException - 如果此线程不允许启动打印作业请求
PrinterException - 如果打印系统中的错误导致作业中止
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService) ,
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTable 。
在打印期间将显示具有中止选项的模态进度对话框。
注意:在无头模式下,默认打印机上不显示任何对话框和打印。
printMode - 可打印应使用的打印模式
headerFormat - 一个
MessageFormat指定要在打印头中使用的文本,否则为null
footerFormat - 指定要在打印页脚中使用的文本的
MessageFormat ,否则为null
SecurityException - 如果此线程不允许启动打印作业请求
PrinterException - 如果打印系统中的错误导致作业中止
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService) ,
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException
print方法指定打印此表,默认打印机指定为打印服务。
printMode - 可打印应使用的打印模式
headerFormat - a
MessageFormat指定要在打印头中使用的文本,或
null for none
footerFormat - a
MessageFormat指定要在打印页脚中使用的文本,或
null无
showPrintDialog - 是否显示打印对话框
attr - 一个
PrintRequestAttributeSet指定任何打印属性,或
null无
interactive - 是否以交互模式进行打印
HeadlessException - 如果方法被要求显示打印对话框或交互式运行,并且
GraphicsEnvironment.isHeadless返回
true
SecurityException - 如果此线程不允许启动打印作业请求
PrinterException - 如果打印系统中的错误导致作业中止
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService) ,
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)
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 ,在true期间会显示一个模式进度对话框(带有中止选项)。 此对话框还可以防止可能影响表的任何用户操作。 但是,它不能阻止表被代码修改(例如,使用SwingUtilities.invokeLater发布更新的另一个线程)。 因此,开发人员有义务确保在打印期间无其他代码以任何方式修改表(无效修改包括:大小,渲染器或底层数据中的更改)。 打印时表格更改时打印行为未定义。
如果false参数指定了false,则不会显示任何对话框,并且事件发送线程上将立即开始打印。 这将阻止任何其他事件(包括重绘)被处理直到打印完成。 尽管这有效地防止了表的更改,但它并没有提供良好的用户体验。 出于这个原因,指定false从没有可见的GUI的应用程序进行打印时仅建议。
注意:尝试在无头模式下显示打印对话框或以交互方式运行时,将导致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使用默认打印机
HeadlessException - 如果方法被要求显示打印对话框或交互式运行,并且
GraphicsEnvironment.isHeadless返回
true
SecurityException - 如果存在安全管理员,并且其
SecurityManager.checkPrintJobAccess()方法不允许此线程创建打印作业请求
PrinterException - 如果打印系统中的错误导致作业中止
getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) ,
GraphicsEnvironment.isHeadless()
public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Printable用于打印此JTable。
这种方法是为希望自定义默认的那些Printable通过使用实施JTable的print方法。 想要简单地打印表的开发人员应该直接使用这些方法之一。
该Printable可以要求在两种打印模式的一个。 在这两种模式下,它会跨多个页面顺序地传播表格行,每页适合尽可能多的行。 PrintMode.NORMAL指定表以当前大小打印。 在这种模式下,可能需要以类似于行的方式在页面之间传播列。 当需要时,列按照与表ComponentOrientation的顺序ComponentOrientation 。 PrintMode.FIT_WIDTH指定输出缩放比较小,如有必要,以适应每个页面上的表的整个宽度(从而所有列)。 宽度和高度相等地缩放,保持输出的宽高比。
Printable将每个页面上的表格部分以表JTableHeader的相应部分JTableHeader ,如果有的话。
标题和页脚文本可以通过提供MessageFormat参数添加到输出。 打印代码从格式请求字符串,提供可能包含在格式化字符串中的单个项目:表示当前页面编号的Integer 。
鼓励您阅读MessageFormat的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本身将在打印期间保留隐藏选择和对焦。 对于其他自定义,您的渲染器或绘画代码可以根据JComponent.isPaintingForPrint()的值自定义外观
此外, 在调用此方法之前,您可能希望首先修改表的状态,例如取消单元格编辑或使用户的表格适当。 但是,在提取Printable 之后 ,您不能修改表的状态(无效修改包括大小或底层数据的更改)。 表格更改后,返回的Printable的行为是未定义的。
printMode - 可打印应使用的打印模式
headerFormat - 一个
MessageFormat指定要在打印头中使用的文本,否则为null
footerFormat - 指定要在打印页脚中使用的文本的
MessageFormat ,否则为null
Printable打印这个JTable
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean) , Printable , PrinterJob
public AccessibleContext getAccessibleContext()
getAccessibleContext在界面
Accessible
getAccessibleContext在
Component
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.