java-Swing 控件的用法和范例类 JTableJTable 用来显示和编辑规则的二维单元表。 JTable 有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。例如,要设置一个 10 行 10 列的表:TableModel dataModel = new AbstractTableModel() {public int getColumnCount() { return10; }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);注意,如果要在单独的视图中(在 JScrollPane 外)使用 JTable 并显示表标题,则可以使用 getTableHeader() 获取并单独显示它。设计使用 JTable 的应用程序时,要严格注意用来表示表数据的数据结构。DefaultTableModel是一个模型实现,它使用一个 Vector 来存储所有单元格的值。该 Vector 由包含多个 Object的 Vector 组成。除了将数据从应用程序复制到DefaultTableModel 中之外,还可以TableModel 接口的方法来包装数据,这样可将数据直接传递到 JTable,如以上示例所示。这通常可以提高应用程序的效率, 因为模型可以自由选择最适合数据的内部表示形式。在决定使用 AbstractTableModel 还是使用 DefaultTableModel 方面有一个好的实践经验,即在创建子 类 时 使 用AbstractTableModel 作为 基 类 , 在 不 需 要 创 建 子 类 时 则 使 用DefaultTableModel。在发行的源代码演示部分中的 "TableExample" 目录内给出了许多 JTable 用法的完整示例,包括如何使用 JTable 来提供一个可编辑的数据视图(数据来自数据库),以及如何修改正显示的列以使用特殊的渲染器和编辑器。JTable 使用惟一的整数来引用它所显示的模型的行和列。JTable 只是采用表格的单元格范围,并在绘制时使用 getValueAt(int, int) 从模型中检索值。默认情况下,在 JTable 中对列进行重新安排,这样在视图中列的出现顺序与模型中列的顺序不同。但这根本不影响模型的实现:当列重新排列时,JTable 在内部保持列的新顺序,并在查询模型前转换其列的索引。因此编写 TableModel 时,不必侦听列的重排事件,因为将在模型自己的坐标系统中查询它,而不管视图中发生了什么情况。在示例部分中有一个排序算法的演示,此演示正是使用了此技术在另...