javax.swing
类 JTable
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
public class JTableextends JComponentimplements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, AccessibleJTable 用来显示和编辑规则的二维单元表。有关面向任务的文档和使用 JTable 的示例,请参阅《The Java Tutorial》中的 How to Use Tables 一节。
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);
注意,如果要在单独的视图中(在 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 时,不必侦听列的重排事件,因为将在模型自己的坐标系统中查询它,而不管视图中发生了什么情况。在示例部分中有一个排序算法的演示,此演示正是使用了此技术在另一个坐标系统中进行排序,其中更改行的顺序,而不更改列的顺序。
分享到:
- 2009-03-11 22:22
- 浏览 1394
- 评论(1)
- 论坛回复 / 浏览 (1 / 5794)
- 查看更多
相关推荐
在Java编程中,`javax.swing` 是一个用于创建图形用户界面(GUI)的包,它包含了丰富的组件和工具类,使得开发者能够构建出功能丰富的桌面应用。分页是一种常见于数据量较大的场景中的交互方式,用于将大量数据分隔...
JTable 是java窗体应用,关于布局,JTable的方法和一些其他的运用
javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器...
5. `javax.swing.JTable` JTable提供了多种构造函数,以便根据不同的需求初始化表格: 1. `JTable()`: 创建一个空表格,使用系统默认的`DefaultTableModel`。 2. `JTable(int numRows, int numColumns)`: 创建指定...
- javax.swing.table:支持JTable组件的相关类和接口。 - javax.swing.text:处理文本组件的类和接口。 - javax.swing.border:轻量级组件边框的支持。 - javax.swing.colorchooser、javax.swing.filechooser:提供...
- `javax.swing.table`:与`JTable`组件相关的类,用于创建和管理表格数据。 - `javax.swing.text`:包含文本组件相关的类,如`JTextComponent`,支持文本编辑和格式化。 - `javax.swing.text.html`:处理HTML文本...
javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑...
可以通过调用`JTable.getTableHeader()`方法获取行标题。在上述示例中,`JTable`被放置在`JScrollPane`中,这样可以确保`ColumnHeader`与`ColumnObject`都完整地显示出来。 如果直接将`JTable`添加到`JFrame`中而...
import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class table implements ...
在Java的Swing库中,`JTable`是用于创建表格视图的重要组件。它允许开发者展示和操作二维数据集,通常与一个`TableModel`一起使用来实现数据绑定。在这个`JTable`示例源码中,我们将会深入探讨如何使用`TableModel`...
8. `javax.swing.JComponent` - Swing组件的基础类,提供了事件处理和布局管理等功能。 ### Swing包和组件支持 Swing库由多个包组成,每个包都专注于特定的功能: 1. `javax.swing` - 包含核心的Swing组件,如...
* javax.swing.table:提供了JTable组件 * javax.swing.text:提供了支持文档的显示和编辑 * javax.swing.tree:提供了JTree组件的支持类 五、容器类 容器类是Swing中提供用来创建表示图形用户界面的类,包括窗口...
- **javax.swing.table**: 支持`JTable`组件,用于显示和操作表格数据。 - **javax.swing.text**: 用于文本组件的支持,如`JTextComponent`。 - **javax.swing.event**: 包含事件和监听器的类,用于处理用户交互事件...
7. `javax.swing.table`:提供了`JTable`组件的实现,用于展示表格数据。 8. `javax.swing.text`:包含处理文本的类和接口,如文本字段和文本区域。 9. `javax.swing.tree`:提供了`JTree`组件,用于显示层次结构...
import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class JTableExample { public static void main(String[] args) { Object[][] data = {{"数据1", "数据2"}, {"数据3", "数据4...
- 这是最基础也是最常用的包,包含了构建Swing GUI所需的大部分组件类,如按钮、标签、文本框等。 2. **`javax.swing.border`**: - 此包包含了一系列与Swing组件边框样式相关的类,可以用来自定义组件的外观边界...
- `javax.swing.table`: 支持表格组件`JTable`。 - `javax.swing.text`: 与文本组件相关的类。 - `javax.swing.text.html`, `javax.swing.text.html.parser`, `javax.swing.text.rtf`: 支持HTML和RTF格式的文本处理...
5. javax.swing.table:提供了与JTable组件相关的类和接口,如DefaultTableModel、TableColumnModel,用于显示和操作表格数据。 6. javax.swing.text:该子包处理文本组件,如JTextComponent,提供了文本格式化、...