站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JDK 5 Documentation v1.4.1, Java 2 SDK 英文文档

JTable - JDK 5 Documentation v1.4.1, Java 2 SDK 英文文档

Java

JTable

Other Swing Changes
As a result of JTable changes, code written for v 1.2 or for JFC/Swing 1.1 might have the following problems when run in v 1.3:
  • Since the TableColumn getHeaderRenderer method now returns null by default, you can't use that method to get the default header renderer. Instead, change your code to use the JTableHeader getDefaultRenderer method. See How to Use Tables in The Java Tutorial for an example.
  • Because JTable's default text editor is now smarter about data types, it now gives setValueAt objects of the appropriate type, instead of always specifying strings. For example, if setValueAt is invoked for an Integer cell, then the value is specified as an Integer instead of a String. If you implemented a table model, then you might have to change its setValueAt method to take the new data type into account. If you implemented a class used as a data type for cells, make sure that your class has a constructor that takes a single String argument.

Column and Row Layout Improvements

We made the following changes:

  • Improved performance in tables with large numbers of columns
    Moving the header renderers from the columns themselves to the table header represents the most significant change to performance and footprint by sharing similar header renderers on a per-table basis.
  • Dynamic changing of individual row height
    The rendering machinery in the JTable has been substantially overhauled in this release to enable this much sought after feature in the JTable.
  • Simplified creation of non-standard editor components
    The AbstractCellEditor class has been included in response to continued feedback on the difficulty of creating non-standard editor components.
  • Better handling of inter-cell spacing
    Previously JTable did not correctly implement its specification for inter-cell spacing. Changes in the inter-cell spacing affected a number of other properties including the overall height of the table. In v 1.3, the inter-cell spacing has only one effect: to provide an inset for the cells, where the inset is the amount that renderers and editors are shrunk to accommodate the spacing between the cells.

For more information, see the API documentation for the following methods and fields. Note that "obsolete" means that you should avoid using the obsolete API, but that using the API isn't dangerous enough to warrant a compile-time warning. "Deprecated" API, on the other hand, is not only obsolete but also results in a compile-time warning.

In JTable

In JTableHeader

In TableColumn

New Class: javax.swing.AbstractCellEditor

Existing Class DefaultCellEditor now extends AbstractCellEditor

New SizeSequence Utility Class

Before this release the height of rows in a JTable was always fixed. Introducing variable height rows whilst retaining the scalability requirements of the JTable (no O(N) behavior on rows) has required this new class and we have made it public as we think it may be generally useful. Indeed, table columns and the variable height rows of a JList might both use this class in the future to improve performance.

See: javax.swing.SizeSequence


Copyright © 1995-98 Sun Microsystems, Inc. All Rights Reserved.

Please send comments to: swing-feedback@java.sun.com. This is not a subscription list.
Sun
Java Software