Java Swing实战:JTable与JTree组件详解及实例
82 浏览量
更新于2024-08-31
收藏 276KB PDF 举报
"Java Swing中的表格(JTable)和树(JTree)组件是用于构建图形用户界面的重要元素。本文深入探讨了这两个组件的基本概念、常用方法以及实战代码示例,旨在帮助开发者更好地理解和应用它们。"
在Java Swing中,`JTable`和`JTree`组件是展示数据的有效方式。`JTable`主要用于展示二维结构的数据,而`JTree`则适用于以层级结构展示数据。
### JTable组件
#### 基本概念
`JTable`是一个组件,它允许你以表格形式展示数据,支持行和列的操作,如添加、删除和编辑。它提供了对大量数据的便捷可视化,使得用户能够轻松地浏览和操作数据。
#### 常用构造方法
1. `JTable()` - 创建一个使用系统默认模型的空表格。
2. `JTable(int numRows, int numColumns)` - 创建具有指定行数和列数的空表格,使用`DefaultTableModel`。
3. `JTable(Object[][] rowData, Object[][] columnNames)` - 使用给定的二维数据数组和列名创建表格。
4. `JTable(TableModel dm)` - 使用提供的`TableModel`实例创建表格,`TableModel`负责管理表格的数据和结构。
#### 常用方法
- `getModel()` - 获取表格的数据模型。
- `setModel(TableModel model)` - 设置新的数据模型。
- `getValueAt(int row, int column)` - 获取指定单元格的值。
- `setValueAt(Object value, int row, int column)` - 设置指定单元格的值。
- `addColumn(Object columnIdentifier)` - 添加新列。
- `removeColumn(Object column)` - 删除指定列。
- `addRow(Vector rowData)` - 添加一行数据。
- `removeRow(int row)` - 删除指定行。
#### 综合案例
下面的代码展示了如何创建一个简单的`JTable`:
```java
public class JTableDemo1 extends JFrame {
JTable table;
JScrollPane scrollPane;
DefaultTableModel tableModel;
public JTableDemo1() {
super();
setTitle("表格模型与表格");
scrollPane = new JScrollPane();
String[] columnNames = {"A", "B", "C"};
String[][] tableValues = {{"A1", "B1", "C1"}, {"A2", "B2", "C2"}, {"A3", "B3", "C3"}, {"A4", "B4", "C4"}};
tableModel = new DefaultTableModel(tableValues, columnNames);
table = new JTable(tableModel);
}
}
```
在这个例子中,我们首先定义了表格的列名和数据,然后使用`DefaultTableModel`创建了数据模型,并将这个模型应用于`JTable`。
### JTree组件
`JTree`组件用于显示层次化的数据,如文件系统的目录结构。每个节点都可以展开或折叠,显示其子节点。
#### 基本概念
`JTree`提供了一种以树形结构展示数据的方式,用户可以通过单击节点来展开或折叠节点的子项。
#### 常用构造方法
1. `JTree()` - 创建一个空的`JTree`,使用默认的`DefaultTreeModel`。
2. `JTree(TreeModel model)` - 使用提供的`TreeModel`实例创建树。
3. `JTree(Object[] array)` - 从给定的数组创建一个`JTree`,数组的每个元素都是一个树节点。
#### 常用方法
- `getModel()` - 获取树的数据模型。
- `setModel(TreeModel model)` - 设置新的数据模型。
- `getSelectionPath()` - 获取当前选中的节点路径。
- `expandPath(TreePath path)` - 展开指定的节点路径。
- `collapsePath(TreePath path)` - 折叠指定的节点路径。
#### 实例
创建一个简单的`JTree`可以如下进行:
```java
public class JTreeDemo1 extends JFrame {
JTree tree;
public JTreeDemo1() {
super();
setTitle("JTree 示例");
DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");
DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("子节点1");
DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("子节点2");
root.add(child1);
root.add(child2);
tree = new JTree(root);
}
}
```
在这个例子中,我们创建了一个简单的树结构,根节点有两个子节点。
总结来说,`JTable`和`JTree`组件是Java Swing UI设计中不可或缺的部分,它们分别用于展示二维表格数据和层级结构数据,通过灵活的数据模型和丰富的API,开发者可以根据需求实现各种复杂的用户界面功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-09-14 上传
2012-12-29 上传
2020-08-29 上传
280 浏览量
2009-12-19 上传
2009-11-12 上传
weixin_38610870
- 粉丝: 1
- 资源: 912
最新资源
- Ex_Ui登陆界面-易语言
- 行业分类-设备装置-同步提取大豆油脂和浓缩蛋白的方法.zip
- Bibtool-开源
- alware:二进制行为检查器-syscall,net-traffic等
- CrownMonolithic:使用python后端重构初始的泥潭浏览器游戏
- -PERSONS-PORTFOLIO:PERSONS PORTFOLIO
- BibSite-开源
- redux-cool:建立Redux逻辑,而不会感到紧张
- 股票查询-易语言
- .xKeep
- 行业分类-设备装置-可调式套筒和可调式棘轮套筒扳钳.zip
- emilmassey.github.io:我的个人网页
- discord-mass-ban:用户或漫游器令牌可以使用不和谐的批量禁止工具,以完全清除具有所需权限的服务器
- Dsc
- RK3566和RK3568硬件参考设计指导
- CDMLLoader:用于设计设备Mod应用程序的标记语言