当前位置:文档之家› java swing表格和树

java swing表格和树

第十三章 补充— 补充—表格和树
Version 3.0
襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
回顾
Swing 菜单由 JMenubar、JMenuitem 和 、 JMenu 组成 的实例可生成菜单。 创建 JMenuBar 的实例可生成菜单。 JPopupMenu 可显示在屏幕的任何地方 JCheckBoxMenuItem 和 JRadioButtonMenuItem 用于实现菜单栏中的 复选框和单选按钮 JOptionPane 类用于显示对话框
• • • • • 运行该工程 此时创建的表无表头 要显示表头,请单击“ 要显示表头,请单击“Design”选项卡 选项卡 选定该表, 选定该表,右击其中的表头属性 单击关联菜单中的“ 单击关联菜单中的“Expose as Class level variable” 选项 • 此时将显示表头 • 运行该工程 • 为表头设置属性
18 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
步骤
5、将枝节点添加至根节点 、
根结点对象名.add(枝节点 root.add(parent); 枝节点) 根结点对象名 枝节点 6、初始化树实例(构造树对象) 初始化树实例(构造树对象) JTree jtree1=new JTree(root);
6 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JT new JTable(cells,columns); 使用二维对象数组来传递构造函数 以填充 JTable 实例
7 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JTable 9-7
JTable 9-5
以下代码用于添加行和列 Object[ ][ ] cells = { {"Java",new Integer(01),new Integer(400)}, {"Oracle",new Integer(02),new Integer(500)}, {"C#",new Integer(03),new Integer(700)}, }; String[] colnames={"课程名称","课程编号","学费(元)"};
第三个构造方法接收一个 TreeNode 对象。该对象本身可以是 JTree 组件,也可以是DefaultMutableTreeNode 类的对象。用户可以使用 DefaultMutableTreeNode 对象来实现自定义的JTree
17 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
襄樊软件学院 你的潜力,我们的动力!
JTable 9-9
• 以下代码将在“Source”选项卡中自动生成 以下代码将在“ 选项卡中自动生成
package tabledemo; private void jbInit() throws Exception { import java.awt.BorderLayout; contentPane = (JPanel) getContentPane(); import java.awt.Dimension; contentPane.setLayout(null); String[] colnames={"课程名称","课程编号","学费(元)"}; import javax.swing.JFrame; setSize(new= new JTable(cells, colnames); JTable jTable1 Dimension(400, 300)); import JTable"); setTitle("欢迎使用 javax.swing.JPanel; JTableHeader jTableHeader1 = jTable1.getTableHeader(); import javax.swing.JTable; jTable1.setBackground(Color.yellow); public TableFrame() { import java.awt.*; jTable1.setBorder(null); try { jTable1.setGridColor(Color.black); import javax.swing.*; setDefaultCloseOperation(EXIT_ON_CLOSE); jTable1.setSelectionBackground(Color.orange); jbInit(); import javax.swing.table.JTableHeader; jTable1.setBounds(new Rectangle(11, 29, 251, 161)); } catch (Exceptionclass TableFrame extends JFrame { public exception) { 用户输入代码以添加行和列 jTableHeader1.setBackground(Color.pink); exception.printStackTrace(); JPanel contentPane; jTableHeader1.setBounds(new Rectangle(10, 10, 252, 20)); } Object[ ][ ] cells = contentPane.add(jTableHeader1); } { contentPane.add(jTable1); /** {"Java",new Integer(01),new Integer(400)}, }*初始化组件. {"Oracle",new Integer(02),new Integer(500)}, } * {"C#",new Integer(03),new Integer(700)}, * @throws ng.Exception }; */
2 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
本章目标
• 运用 JTable • 运用 JTree
3 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JTable 9-1
• 以表格方式维护大量数据比以列表方式更 加方便 显示数据并且允许用户对其进行编辑 • 使用 Swing 中的 JTable 类可以创建表
步骤
1、创建根节点 、 DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点 根节点"); 根节点 2、创建枝节点 、 DefaultMutableTreeNode parent = new DefaultMutableTreeNode("书籍 书籍"); 书籍 3、创建叶节点 、 DefaultMutableTreeNode leaf = new DefaultMutableTreeNode("java"); 4、将叶节点添加至枝节点 、 枝节点对象名.add(叶节点 parent.add(leaf); 叶节点); 枝节点对象名 叶节点
13 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JTree
• 树状图以垂直的分层结构方式描述信息 • Windows 资源管理器或文件管理器用树状结构来描述 文件和文件夹 • 使用 JTree 类可在 Java 中创建这些结构 • 树层次结构中的每一行称为一个节点 • 每个树都有一个根节点,可由这个根节点展开所有节 每个树都有一个根节点, 点 • 节点包含实际的数据 • 需要导入相关的包 需要导入相关的包: Import javax.swing.jtree;
7、将树对象添加至容器 、
19 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
创建自定义的 JTree
• 自定义树结构的代码片段
... // 创建根节点 DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点"); // 创建枝节点 DefaultMutableTreeNode parent = new DefaultMutableTreeNode("书籍"); DefaultMutableTreeNode leaf = new DefaultMutableTreeNode("java"); // 将叶节点添加至枝节点 parent.add(leaf) // 将枝节点添加至根节点 root.add(parent); jTree2 = new JTree(root); contentPane.add(jTree2); ...
JTable
对存储数值数据非常有用
它不存储数据,只提供数据的呈现方式
4 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JTable 9-4
JTable jTable1 = new JTable(); 实例化 JTable 控件后将生成代码
5 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
襄樊软件学院
14
Import javax.swing.tree.*;
你的潜力,我们的动力! 你的潜力,我们的动力!
JTree的节点 JTree的节点
节点 节 点 类 型 节点
节点下不包含节点
节点上不包含节点
节点
节点上下都包含节点
15 襄樊软件学院
你的潜力,我们的动力! 你的潜力,我们的动力!
JTree的缺省构造方法 JTree的缺省构造方法
你的潜力,我们的动力! 你的潜力,我们的动力!
8 襄樊软件学院
设置表头
• JTableHeader 用于设置表头
相关主题