📄 jtable.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc on Thu Apr 27 23:39:26 PDT 2000 --><TITLE>Java 2 Platform SE v1.3: Class JTable</TITLE><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"></HEAD><BODY BGCOLOR="white"><!-- ========== START OF NAVBAR ========== --><A NAME="navbar_top"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/JTable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Std. Ed. v1.3</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../javax/swing/JTabbedPane.ModelListener.html"><B>PREV CLASS</B></A> <A HREF="../../javax/swing/JTable.AccessibleJTable.html"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html" TARGET="_top"><B>FRAMES</B></A> <A HREF="JTable.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: <A HREF="#inner_class_summary">INNER</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><!-- =========== END OF NAVBAR =========== --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">javax.swing</FONT><BR>Class JTable</H2><PRE><A HREF="../../java/lang/Object.html">java.lang.Object</A> | +--<A HREF="../../java/awt/Component.html">java.awt.Component</A> | +--<A HREF="../../java/awt/Container.html">java.awt.Container</A> | +--<A HREF="../../javax/swing/JComponent.html">javax.swing.JComponent</A> | +--<B>javax.swing.JTable</B></PRE><DL><DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../javax/accessibility/Accessible.html">Accessible</A>, <A HREF="../../javax/swing/event/CellEditorListener.html">CellEditorListener</A>, <A HREF="../../java/util/EventListener.html">EventListener</A>, <A HREF="../../java/awt/image/ImageObserver.html">ImageObserver</A>, <A HREF="../../javax/swing/event/ListSelectionListener.html">ListSelectionListener</A>, <A HREF="../../java/awt/MenuContainer.html">MenuContainer</A>, <A HREF="../../javax/swing/Scrollable.html">Scrollable</A>, <A HREF="../../java/io/Serializable.html">Serializable</A>, <A HREF="../../javax/swing/event/TableColumnModelListener.html">TableColumnModelListener</A>, <A HREF="../../javax/swing/event/TableModelListener.html">TableModelListener</A></DD></DL><HR><DL><DT>public class <B>JTable</B><DT>extends <A HREF="../../javax/swing/JComponent.html">JComponent</A><DT>implements <A HREF="../../javax/swing/event/TableModelListener.html">TableModelListener</A>, <A HREF="../../javax/swing/Scrollable.html">Scrollable</A>, <A HREF="../../javax/swing/event/TableColumnModelListener.html">TableColumnModelListener</A>, <A HREF="../../javax/swing/event/ListSelectionListener.html">ListSelectionListener</A>, <A HREF="../../javax/swing/event/CellEditorListener.html">CellEditorListener</A>, <A HREF="../../javax/accessibility/Accessible.html">Accessible</A></DL><P><code>JTable</code> is a user-interface component that presents data in a two-dimensional table format. See <a href="http://java.sun.com/docs/books/tutorial/uiswing/components/table.html">How to Use Tables</a> in <em>The Java Tutorial</em> for task-oriented documentation and examples of using <code>JTable</code>. <p> The <code>JTable</code> has many facilities that make it possible to customize its rendering and editing but provides defaults for these features so that simple tables can be set up easily. For example, to set up a table with 10 rows and 10 columns of numbers: <p> <pre> 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); </pre> <p> Because the <code>JTable</code> is now much easier to set up with custom models the <code>DefaultTableModel</code> is less useful than it was in previous releases. Instead of copying the data in an application into the <code>DefaultTableModel</code>, we recommend wrapping it in the methods of the <code>TableModel</code> interface and passing the real data to the <code>JTable</code> as above. This technique is nearly as concise as using a <code>DefaultTableModel</code> and starting this way has a number of advantages over the longer term. In particular: it is a scalable technique, can more easily handle dynamic or editable tables, and often results in much more efficient applications because the model is free to choose the internal representation that best suits the data. <p> The "Table" directory in the examples/demo area gives a number of complete examples of <code>JTable</code> usage, covering how the <code>JTable</code> can be used to provide an editable view of data taken from a database and how to modify the columns in the display to use specialized renderers and editors. For example, overriding <code>AbstractTableModel</code>'s <code>getColumnClass</code> method to return a value of <code>ImageIcon.class</code> for a given column allows icons to be displayed, while returning a value of <code>Number.class</code> allows digits to be right-justified in the column. <p> The <code>JTable</code> uses integers exclusively to refer to both the rows and the columns of the model that it displays. The <code>JTable</code> simply takes a tabular range of cells and uses <code>getValueAt(int, int)</code> to retrieve and display the appropriate values from the model. <p> If <code>getTableHeader().setReorderingAllowed(boolean)</code> is used to enable column reordering columns may be rearranged in the <code>JTable</code> so that the view's columns appear in a different order to the columns in the model. This does not affect the implementation of the model at all: when the columns are reordered, the <code>JTable</code> maintains the new order of the columns internally and converts its column indices before querying the model. <p> So, when writing a <code>TableModel</code>, it is not necessary to listen for column reordering events as the model will be queried in its own coordinate system regardless of what is happening in the view. In the examples area there is a demonstration of a sorting algorithm making use of exactly this technique to interpose yet another coordinate system where the order of the rows is changed, rather than the order of the columns. <p> The general rule for the <code>JTable</code> API and the APIs of all its associated classes, including the column model and both the row and column selection models, is: methods using integer indices for rows and columns always use the coordinate system of the view. There are three exceptions to this rule: <ul> <li> All references to rows and columns in the <code>TableModel</code> interface are in the coordinate system of the model. <li> The index <code>modelIndex</code> in the <code>TableColumn</code> constructors refers to the index of the column in the model, not the view. <li> All constructors for the <code>TableModelEvent</code>, which describes changes that have taken place in a table model, use the coordinate system of the model. </ul> The <code>TableColumn</code> provides a slot for holding an identifier or "tag" for each column, and the <code>JTable</code> and <code>TableColumnModel</code> both support <code>getColumn(Object id)</code> conveniences for locating columns by their identifier. If no identifier is explicitly set, the <code>TableColumn</code> returns its header value (the name of the column) as a default. A different identifier, which can be of any type, can be set using the <code>TableColumn</code>'s <code>setIdentifier</code> method. All of the <code>JTable</code>'s functions operate correctly regardless of the type and uniqueness of these identifiers. <p> The <code>convertColumnIndexToView</code> and <code>convertColumnIndexToModel</code> methods have been provided to convert between the two coordinate systems but they are rarely needed during normal use. <p> As for all <code>JComponent</code> classes, you can use <A HREF="../../javax/swing/InputMap.html"><CODE>InputMap</CODE></A> and <A HREF="../../javax/swing/ActionMap.html"><CODE>ActionMap</CODE></A> to associate an <A HREF="../../javax/swing/Action.html"><CODE>Action</CODE></A> object with a <A HREF="../../javax/swing/KeyStroke.html"><CODE>KeyStroke</CODE></A> and execute the action under specified conditions. <p> For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the <a href="doc-files/Key-Index.html#JTable"><code>JTable</code></a> key assignments. <p> <strong>Warning:</strong> Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.<P><DL><DT><B>See Also: </B><DD><A HREF="../../serialized-form.html#javax.swing.JTable">Serialized Form</A></DL><HR><P><!-- ======== INNER CLASS SUMMARY ======== --><A NAME="inner_class_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Inner Class Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected class</CODE></FONT></TD><TD><CODE><B><A HREF="../../javax/swing/JTable.AccessibleJTable.html">JTable.AccessibleJTable</A></B></CODE><BR> This class implements accessibility support for the <code>JTable</code> class.</TD></TR></TABLE> <A NAME="inner_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Inner classes inherited from class javax.swing.<A HREF="../../javax/swing/JComponent.html">JComponent</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../javax/swing/JComponent.AccessibleJComponent.html">JComponent.AccessibleJComponent</A></CODE></TD></TR></TABLE> <A NAME="inner_classes_inherited_from_class_java.awt.Container"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Inner classes inherited from class java.awt.<A HREF="../../java/awt/Container.html">Container</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../java/awt/Container.AccessibleAWTContainer.html">Container.AccessibleAWTContainer</A></CODE></TD></TR></TABLE> <A NAME="inner_classes_inherited_from_class_java.awt.Component"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Inner classes inherited from class java.awt.<A HREF="../../java/awt/Component.html">Component</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../java/awt/Component.AccessibleAWTComponent.html">Component.AccessibleAWTComponent</A></CODE></TD></TR></TABLE> <!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Field Summary</B></FONT></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -