javaswing表格和树

上传人:仙*** 文档编号:171196575 上传时间:2022-11-24 格式:PPT 页数:26 大小:804.53KB
返回 下载 相关 举报
javaswing表格和树_第1页
第1页 / 共26页
javaswing表格和树_第2页
第2页 / 共26页
javaswing表格和树_第3页
第3页 / 共26页
点击查看更多>>
资源描述
Version 3.0你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院2 Swing 菜单由菜单由 JMenubar、JMenuitem 和和 JMenu 组成组成 创建创建 JMenuBar 的实例可生成菜单。的实例可生成菜单。JPopupMenu 可显示在屏幕的任何地方可显示在屏幕的任何地方 JCheckBoxMenuItem 和和 JRadioButtonMenuItem 用于实现菜单栏中的用于实现菜单栏中的复选框和单选按钮复选框和单选按钮 JOptionPane 类用于显示对话框类用于显示对话框 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院3 运用运用 JTable 运用运用 JTree 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院4 以表格方式维护大量数据比以列表方式更以表格方式维护大量数据比以列表方式更加方便加方便 使用使用 Swing 中的中的 JTable 类可以创建表类可以创建表 JTable对存储数值数据非常有用 显示数据并且允许用户对其进行编辑 它不存储数据,只提供数据的呈现方式 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院5JTable jTable1=new JTable();实例化 JTable 控件后将生成代码 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院6Object cells=Java,new Integer(01),new Integer(400),Oracle,new Integer(02),new Integer(500),C#,new Integer(03),new Integer(700),;String colnames=课程名称,课程编号,学费(元);以下代码用于添加行和列 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院7JTable jTable1=new JTable(cells,columns);使用二维对象数组来传递构造函数以填充 JTable 实例 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院8 运行该工程运行该工程 此时创建的表无表头此时创建的表无表头 要显示表头,请单击要显示表头,请单击“Design”选项卡选项卡 选定该表,右击其中的表头属性选定该表,右击其中的表头属性 单击关联菜单中的单击关联菜单中的“Expose as Class level variable”选项选项 此时将显示表头此时将显示表头 运行该工程运行该工程 为表头设置属性为表头设置属性 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院9 JTableHeader 用于设置表头用于设置表头例:例:JTableHeader jh1=new jTable1.getTableHeader();你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院101、创建二维对象数组和一维字符串数组用于填充表和一维字符串数组用于填充表格的行和列以及表头格的行和列以及表头例:例:object cells=“张三张三”,new Integer(20),”男男”,“李四李四”,new Integer(25),”女女”String colnames=“姓名姓名”,”年龄年龄”,”性别性别”2、初始化、初始化JTable实例实例JTable 表格对象名表格对象名=new JTable(对象数组对象数组,字符串数组字符串数组);例:例:JTable jTable1=new JTable(cells,colnames);/该表格无表头该表格无表头3、设置表头、设置表头(通过表格类的方法通过表格类的方法 getTableHeader()获得获得表头表头)JTableHeader jTableHeader1=jTable1.getTableHeader();你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院114、将表格和表头分别添加至容器、将表格和表头分别添加至容器 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院12 setCellSelectionEnabled(boolean cellSelectionEnabled)设置此表是否允许同时存在行选择和列选设置此表是否允许同时存在行选择和列选择。择。void setGridColor(Color gridColor)将用来绘制网格线的颜色设置为将用来绘制网格线的颜色设置为 gridColor 并重新显示它。并重新显示它。void setSelectionBackground(Color selectionBackground)设置选定单元格的背景色。设置选定单元格的背景色。你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院13 以下代码将在以下代码将在“Source”选项卡中自动生成选项卡中自动生成 package tabledemo;import java.awt.BorderLayout;import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTable;import java.awt.*;import javax.swing.*;import javax.swing.table.JTableHeader;public class TableFrame extends JFrame JPanel contentPane;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=课程名称,课程编号,学费(元);JTable jTable1=new JTable(cells,colnames);JTableHeader jTableHeader1=jTable1.getTableHeader();public TableFrame()try setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();catch(Exception exception)exception.printStackTrace();/*初始化组件.*throws java.lang.Exception */private void jbInit()throws Exception contentPane=(JPanel)getContentPane();contentPane.setLayout(null);setSize(new Dimension(400,300);setTitle(欢迎使用 JTable);jTable1.setBackground(Color.yellow);jTable1.setBorder(null);jTable1.setGridColor(Color.black);jTable1.setSelectionBackground(Color.orange);jTable1.setBounds(new Rectangle(11,29,251,161);jTableHeader1.setBackground(Color.pink);jTableHeader1.setBounds(new Rectangle(10,10,252,20);contentPane.add(jTableHeader1);contentPane.add(jTable1);用户输入代码以添加行和列 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院14 树状图以垂直的分层结构方式描述信息树状图以垂直的分层结构方式描述信息 Windows 资源管理器或文件管理器用树状结构来描述资源管理器或文件管理器用树状结构来描述文件和文件夹文件和文件夹 使用使用 JTree 类可在类可在 Java 中创建这些结构中创建这些结构 树层次结构中的每一行称为一个节点树层次结构中的每一行称为一个节点 每个树都有一个根节点,可由这个根节点展开所有节每个树都有一个根节点,可由这个根节点展开所有节点点 节点包含实际的数据节点包含实际的数据 需要导入相关的包需要导入相关的包:Import javax.swing.jtree;Import javax.swing.tree.*;你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院15叶节点节点上不包含节点 节点上下都包含节点 节点下不包含节点 节点类型枝节点根节点 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院16JTree jTree1=new JTree();实例化 JTree 控件以后可生成以下代码 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院17JTree(Hashtable ht);JTree(Object obj);JTree(TreeNode tn);JTree(Vector v);第三个构造方法接收一个 TreeNode 对象。该对象本身可以是 JTree 组件,也可以是DefaultMutableTreeNode 类的对象。用户可以使用DefaultMutableTreeNode 对象来实现自定义的JTree用于构建 JTree 的构造方法 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院181、创建根节点、创建根节点DefaultMutableTreeNode root=new DefaultMutableTreeNode(根节点根节点);2、创建枝节点、创建枝节点DefaultMutableTreeNode parent=new DefaultMutableTreeNode(书籍书籍);3、创建叶节点、创建叶节点DefaultMutableTreeNode leaf=new DefaultMutableTreeNode(java);4、将叶节点添加至枝节点、将叶节点添加至枝节点枝节点对象名枝节点对象名.add(叶节点叶节点);parent.add(leaf);你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院195、将枝节点添加至根节点、将枝节点添加至根节点根结点对象名根结点对象名.add(枝节点枝节点)root.add(parent);6、初始化树实例(构造树对象)、初始化树实例(构造树对象)JTree jtree1=new JTree(root);7、将树对象添加至容器、将树对象添加至容器 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院20 自定义树结构的代码片段自定义树结构的代码片段./创建根节点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);.你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院21public void jTree2_valueChanged(TreeSelectionEvent e)try DefaultMutableTreeNode node=(DefaultMutableTreeNode)jTree2.getLastSelectedPathComponent();String name=;Object nodeInfo=node.getUserObject();if(node.isRoot()txtName.setText();txtNode.setText(nodeInfo.toString();txtType.setText(根节点);txtNumber.setText(+node.getChildCount();else name=node.getParent().toString();txtName.setText(name);txtNode.setText(nodeInfo.toString();if(node.isLeaf()txtType.setText(叶节点);else txtType.setText(“枝节点);int number=node.getChildCount();txtNumber.setText(+number);catch(Exception ex)你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院22Object getLastSelectedPathComponent()返回当前选择的第一个节点中的最后一个路径返回当前选择的第一个节点中的最后一个路径组件。组件。Int getChildCount()返回此节点的子节点数。返回此节点的子节点数。TreeNode getFirstChild()返回此节点的第一个子节点。返回此节点的第一个子节点。TreeNode getParent()返回此节点的父节点,如果此节点没有返回此节点的父节点,如果此节点没有父节点,则返回父节点,则返回 null 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院23 Boolean isLeaf()如果此节点没有子节点,则返回如果此节点没有子节点,则返回 true。booleanisRoot()如果此节点是树的根,则返回如果此节点是树的根,则返回 true。你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院24 要实现要实现JTree类的事件处理,需要做如下操类的事件处理,需要做如下操作作 1、实现、实现TreeSelectionListener接口接口 2、重写、重写valueChanged(事件类型事件类型 对象对象)方法方法 3、事件类型为、事件类型为 TreeSelectionEvent 4、将监听者实例注册至、将监听者实例注册至JTree类的实例类的实例 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院25 你的潜力,我们的动力!你的潜力,我们的动力!襄樊软件学院襄樊软件学院26 JTable 不包含数据,也不存储数据,只提供呈不包含数据,也不存储数据,只提供呈现数据的方式现数据的方式 JTree 类表示数据的层次结构图类表示数据的层次结构图 树层次结构中的每一行称为一个节点树层次结构中的每一行称为一个节点 只要展开或折叠只要展开或折叠 JTree 对象中的任何节点,都对象中的任何节点,都会产生事件会产生事件 JTree 中的节点有根节点、枝节点和叶节点三中的节点有根节点、枝节点和叶节点三种类型种类型 DefaultMutableTreeNode 对象提供对象提供 TreeNode 对象对象的默认实现的默认实现
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!