欢迎来到天天文库
浏览记录
ID:42279560
大小:279.01 KB
页数:21页
时间:2019-09-11
《程序启动界面与树形结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2讲程序启动界面与树形结构目标:了解Java程序启动界面的原理掌握JavaSwing中树类JTree的使用学会树结点事件处理方法重点:启动界面的实现JTree类的创建树选择事件处理树结点文本编辑定制树的显示难点:动态添加、移除树结点2.1Java程序启动界面的原理问题:当一个应用程序启动需要较长时间时,往往在等待过程中让人明显感到速度慢,难免产生厌烦的心理,怎样可以缓解这种心情呢?方案:在应用程序启动耗费时间较长的情况下,通常引用一个表示欢迎使用本程序的启动界面SplashWindow,在应用程序初始化完成后该画面自动消失,在等待的这段时间里用户可通过欣赏画面来打磨时
2、间。2.1.1SplashWindow(1)SplashWindow使用的是JWindow类在Swing中提供了四个顶层容器类:JFrame、JDialog、JApplet和JWindow.由于JFrame、JDialog有标题栏,不适合作为启动界面,而JApplet是Applet的容器,用于在浏览器中显示Applet,也只有JWindow能够实现所需要的功能。(2)显示SplashWindow时,需考虑的几个问题:当显示SplashWindow时,后台的初始化应用程序不能停止运行;在一定时间后,SplashWindow必须自动消失,进入正常的交互运行界面;在JWind
3、ow上必须放置提示图片,并且显示速度不能太慢,要注意的是图片要先加载到JLabel、JButton组件上;SplashWindow必须总在应用程序的其他窗口之上,不能被遮蔽掉。故使用JWindow.tofront()方法将当前窗口放置最上面显示,当应用程序初始化完成时,使用方法JWindow.dispose()关闭启动界面。由线程调用sleep()来设置启动界面显示的时间以及启动线程时将SplashWindow放置在应用程序多个窗口中的最前面。2.1.2启动界面程序应用示例分析(见教材P9)设置启动界面的基本步骤:(1)加载图片URLurl=getClass().get
4、Resource(“/images/win.jpg”);//获取图片所在的文件路径ImageIconicon=newImageIcon(url);//使用ImageIcon()创建图片JLabeljlb=newJLabel(icon);//图片先添加到标签或按钮上panel.add(jlb);setContentPane(panel);//再将标签或按钮添加到面板上,最后把面板添加到容器里(2)应用线程启动设置画面停留的时间publicvoidstart(){this.toFront();//将启动界面设置在其他窗口的最上面splashThread=newThread(
5、this);splashThread.start();}publicvoidrun(){try{show();Thread.sleep(3000);//延时3秒}catch(Exceptionex){ex.printStackTrace();}this.dispose();//关闭窗口}(3)主窗口的设置staticvoidshowFrame(Stringtitle){JFrameframe=newJFrame(title);frame.setSize(400,300);frame.setVisible(true);//窗口居中显示…frame.getContentPa
6、ne().add(newLabel(“进入应用系统”));}(4)主函数功能:显示主窗口和启动界面2.2树类JTree的创建在Java中,要构造一个由用户定义枝结点的树,JTree还必须同树枝结点类TreePath与TreeNode共同完成。常见树的创建方式:JTree()//建立一个系统默认的树JTree(TreeNoderoot)//应用结点TreeNode建立树JTree(Hashtablevalue)//应用Hashtable表来建立树树结点使用DefaultMutableTreeNode类来创建应用结点TreeNode构造树的步骤:(1)定义结点Default
7、MutableTreeNoden1=newDefaultMutableTreeNode(“结点1”);DefaultMutableTreeNoden2=newDefaultMutableTreeNode(“结点2”);DefaultMutableTreeNoden3=newDefaultMutableTreeNode(“结点3”);(2)定义树,确定根结点JTreetree=newJTree(n1);(3)添加子结点n1.add(n2);n1.add(n3);2.3树的选择事件处理importjavax.swing.tree.*;impo
此文档下载收益归作者所有