Java面向对象程序设计 课件 项目7 用户管理系统设计_第1页
Java面向对象程序设计 课件 项目7 用户管理系统设计_第2页
Java面向对象程序设计 课件 项目7 用户管理系统设计_第3页
Java面向对象程序设计 课件 项目7 用户管理系统设计_第4页
Java面向对象程序设计 课件 项目7 用户管理系统设计_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目7用户管理系统设计学习目标知识技能目标:会描述CUI和GUI的特点;会描述AWT和Swing的关系;会描述Java中GUI控件的分类;会用JFrame、JPanel、JLabel等控件编写GUI界面的应用程序;职业素养目标:具备严谨细致、规范编码的职业素养,确保代码质量和可维护性具备以用户为中心的责任意识,GUI设计时注重用户体验课证融通学习内容与“大数据应用开发(Java)”职业技能等级标准(初级)对应关系工作任务职业技能要求1.1Java高级API编程1.1.2能熟练运用JavaSE中的IO包完成大数据文件的读写和输入输出控制;1.1.3能运用JavaSE中的IO包完成大数据文本解析;任务7.1编写用户登录界面1在管理信息系统中都会有用户登录界面,图形用户界面的框架、面板、标签、文本框、密码框等组件。本任务要求,用Java中的Swing工具包创建一个用户登录界面。任务详解任务描述任务7.1编写用户登录界面1技能点1:识别Java中实现GUI的工具集Java中实现图形用户界面主要包括两个核心库:AWT(AbstractWindowsToolKit,抽象窗口工具包)和Swing。1.AWT

JDK1.0中包含了一个基于GUI程序设计的类库,名为抽象窗口工具箱(AbstractWindowToolkit,简称AWT),包含在java.awt包中。2.Swing

为了使用Java创建的图形界面也能够跨平台,即在不同操作系统中保持相同的外观,从JDK1.2版本开始引入了Swing的用户界面库,这些Swing组件位于javax.swing包中,成为JDK基础类库的一部分。技术准备任务7.1编写用户登录界面1技能点1:识别Java中实现GUI的工具集技术准备Swing包主要类层次结构图AWT包主要类层次结构图任务7.1编写用户登录界面1技能点2:用JFrame创建顶层窗口2.JFrame类的常用成员方法(1)setVisible(booleanb)功能:设置窗体的可见性,默认不可见(2)setSize(intwidth,intheight)功能:设置窗体的大小(宽和高),单位是像素(3)setDefaultCloseOperation(intoperation)功能:设置点关闭按钮时进行的操作(4)setResizable(booleanresizable)功能:设置是否可改变窗口的大小,默认可改变(5)setLocationRelativeTo(Componentc)功能:设置窗口相对于组件c的位置(6)setJMenuBar(JMenuBarmenubar)功能:给窗口设置菜单1.JFrame类的构造方法(1)JFrame()功能:创建一个没有标题、初始不可见的新窗体。(2)JFrame(Stringtitle)功能:创建一个标题为title、初始不可见的新窗体。技术准备任务7.1编写用户登录界面1创建一个标题为“登录窗口”,大小为300*200的可见的窗体要求:(1)关闭窗口时结束应用程序;(2)窗口位于屏幕的中间;(3)窗口的大小不可以改变;教师演示第一步:任务分析第二步:关键技术第三步:编码实现第四步:运行测试任务7.1编写用户登录界面1技能点3:用JPanel创建一个容器1.JPanel的构造方法:JPanel()功能:创建一个新的JPanel,默认为FlowLayout示例代码:JPanelpanel=newJPanel();2.常用方法add(Componentcomp)功能:把组件comp添加到JPanel里示例代码://把标签lblName添加到panel里JLabellblName=newJLabel(“姓名”);panel.add(lblName);技术准备任务7.1编写用户登录界面1技能点4:用JLabel显示文本等提示信息1.常用构造方法(1)JLabel(Stringtext)功能:创建一个显示文本text的新的标签(2)JLabel(Iconimage)功能:创建一个显示image图像的新的标签(3)JLabel(Stringtext,Iconicon,inthorizontalAlignment)功能:创建一个显示文本text和图像icon的新标签。2.常用成员方法(1)setText(Stringtext)功能:定义该组件将显示的单行文本(2)setIcon(Iconicon)功能:定义该组件将显示的图标技术准备任务7.1编写用户登录界面1技能点5:用JTextField接收单行文本1.常用构造方法(1)JTextField(intcolumns)功能:创建一个指定列数的新的文本框。(2)JTextField(Stringtext)功能:创建一个初始文本为text的新的文本框。(3)JTextField(Stringtext,intcolumns)功能:创建一个初始文本为text的指定列数的新的文本框。2.常用成员方法(1)setFont(Fontf)功能:设置文本框中显示文本的字体(2)setForeground(Colorfg)功能:设置文本框中字体显示的颜色(3)StringgetText()功能:获取文本框中输入的内容技术准备任务7.1编写用户登录界面1技能点6:用JPasswordField接收密码1.常用构造方法(1)JPasswordField(intcolumns)功能:用于创建一个指定列数的新的密码框JPasswordField(Stringtext)功能:构造一个新JPasswordField用指定文本初始化。2.常用成员方法(1)char[]getPassword()功能:获取用户输入的密码(2)voidsetEchoChar(charc)功能:设置密码框回显的字符技术准备任务7.1编写用户登录界面1技能点7:用JButton实现按钮1.常用构造方法(1)JButton(Stringtext)功能:创建一个显示文本为text的按钮(2)JButton(Iconicon)功能:创建一个显示图像icon的按钮(3)JButton(Stringtext,Iconicon)功能:创建一个显示文本为text,图像为icon的按钮2.常用成员方法addActionListener(ActionListenerl)功能:给按钮添加事件监听的方法技术准备任务7.1编写用户登录界面1案例:编写一个带按钮的界面教师演示第一步:任务分析实现该任务,需要用到JFrame,JPanel和JButton类。构建GUI界面通常采用以下三个步骤:第一步:先将一般组件添加到对应的JPanel容器中第二步:再将JPanel容器添加到JFrame容器中第三步:设置JFrame容器的属性第三步:编码实现第四步:运行测试任务实施任务7.1编写用户登录界面1第一步:任务分析构建登录窗口要用到顶层容器、中间容器和一般组件第二步:编写代码第三步:调试运行程序AEBCD小组协作,完成任务评价测试任务7.1编写用户登录界面1评价指标评价标准分值得分创建项目正确创建Java项目10

正确显示窗体正确显示窗体10

正确创建组件正确创建标签、文本框、密码框和按钮30

窗体正确将组件添加到窗体中30

编码规范变量命名规范、有合理的注释20

拓展提升——绘制图像任务7.1编写用户登录界面1Graphics类提供了绘制直线、矩形和椭圆等形状的方法,可用于绘制简单的图形。Java2DAPI可以绘制出更复杂和高质量的图形,使用Java2D库绘制图形的步骤:第一步:获得一个Graphics2D类的对象,该类是Graphics的子类。JComponent类中提供的paintComponent方法会自动接收一个Graphics的对象,只需要强制类型转换成Graphics2D类的对象即可。第二步:创建绘制的图形对象第三步:设置画笔颜色等第四步:绘制图形任务7.1编写用户登录界面1案例:绘制一个实心矩形教师演示第一步:新建一个Java项目第二步:新建一个JComponent的子类DrawComponentpublicclassDrawComponentextendsJComponent{@OverrideprotectedvoidpaintComponent(Graphicsg){Graphics2Dg2=(Graphics2D)g;//第一步:获得一个Graphics2D的对象//第二步:创建一个图形对象Rectangle2Drect=newRectangle2D.Double(50,50,200,200);g2.setColor(Color.blue);//设置画笔颜色g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);//设置渲染提示,提高绘图质量g2.draw(rect);//第四步:绘制图形}}第三步:新建一个JFrame的子类DrawFrame第四步:运行程序任务描述任务7.2实现用户登录验证2为用户登录窗口添加事件处理程序,实现登录验证。当点击登录按钮时,如果输入用户名为“admin”,密码为“123456”,提示“登录成功”,否则提示“登录失败”。当点击取消按钮,将用户名和密码清空。具体任务任务7.2实现用户登录验证2技能点1:事件处理模型事件处理模型由以下四部分组成:1.事件(Event):事件是某种状态变化的表示,比如:点击了按钮,

关闭窗口等2.事件源(EventSource):产生事件的对象,比如按钮、窗口等。3.事件监听器(EventListener):注册到事件源上的对象。4.事件处理器(EventHandler):实际处理事件的代码。技术准备事件处理模型主要用于图形用户界面(GUI)编程,如Swing和AWT,但也可以用于其他需要事件驱动的场合。事件处理模型包含在AWT包中,其类和接口位于java.awt.event包中。技能点2:为GUI程序添加事件处理任务7.2实现用户登录验证2技术准备事件源就是图形用户界面中的容器或者组件第一步:识别事件源对不同的事件源进行不同操作会产生不同的事件类对象第二步:识别事件对象事件监听器类可以通过实现监听器接口或者继承事件抽象适配器类来实现第三步:编写事件监听器类可以为一个事件源注册一个或者多个事件监听,注册事件监听用到addXXXListener()方法第四步:注册事件监听为GUI程序添加事件处理的步骤任务7.2实现用户登录验证2编写监听器类的方法方法1:通过实现监听器接口创建事件监听器类classMainFormListenerimplementsWindowListener{publicvoidwindowOpened(WindowEvente){}publicvoidwindowClosing(WindowEvente){}publicvoidwindowClosed(WindowEvente){}publicvoidwindowIconified(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}publicvoidwindowActivated(WindowEvente){}publicvoidwindowDeactivated(WindowEvente){}}方法2:通过继承抽象的适配器类classMainForm2ListenerextendsWindowAdapter{

@Override

publicvoidwindowClosed(WindowEvente){

super.windowClosed(e);}}JDK中为抽象方法不止一个的接口提供了一个抽象的事件适配器类,比如WindowListener对应的WindowAdapter,此时创建监听器类的方法有两种:任务7.2实现用户登录验证2案例:编写一个简单的算术运算计算器教师演示第一步:任务分析(1)构建GUI界面需要用到的类(2)识别事件源:(3)识别事件类:ActionEvent(4)事件监听器类:第二步:编码实现(1)新建一个Java项目(2)新建一个JFrame的子类CalculatorForm,在该类中先构建GUI界面,再编写事件监听器类(内部类),接下来为四个事件源注册事件监听。(3)在main方法中创建CalculatorForm类的对象第三步:运行程序技能点3:用匿名类实现注册事件监听任务7.2实现用户登录验证2在Java中,你可以使用匿名类(AnonymousClass)来简洁地实现事件监听器接口,而不需要显式地定义一个单独的类。匿名类是一种没有名称的类,通常用于实现单一接口或继承单个类。当你只需要一次性使用某个接口或类时,匿名类是非常方便的。技术准备btnClose.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

JOptionPane.showMessageDialog(null,"你点击了关闭按钮");}});示例代码:任务实施任务7.2实现用户登录验证2第一步:任务分析在任务7.1中,已经实现了登录界面的构建,在此基础上为程序添加事件处理程序。识别事件源:

识别事件类:

事件监听器类:

第二步:编码实现(1)打开任务7.1中的项目(2)编写事件监听器类(3)为btnLogin和btnCancel注册事件监听第三步:运行程序AEBCD小组协作,完成任务评价测试任务7.2实现用户登录验证2评价指标评价标准分值得分创建项目正确创建Java项目10

事件监听器类正确识别事件源、编写事件监听器类20

登录验证正确实现登录验证25

清空功能正确实现清空用户名和密码25

编码规范变量命名规范、有合理的注释20

拓展提升——Lambda表达式实现事件监听器类任务7.2实现用户登录验证2一般形式:([参数类型参数名1,参数类型参数名2])->表达式或者([参数类型参数名1,参数类型参数名2])->{语句块}使用说明:(1)如果代码要完成的计算无法放在一个表达式里,就要像写方法一样,将代码方法{}里。(2)Lambda表达式没有参数,()不能省,就像无参方法一样。(3)如果方法参数只有一个,而且参数类型是可以推导的,可以省略小括号。拓展提升——Lambda表达式实现事件监听器类任务7.2实现用户登录验证2(1)如果代码要完成的计算无法放在一个表达式里,就要像写方法一样,将代码方法{}里。示例代码:用Lambda表达式为btnCancel注册事件监听btnCancel.addActionListener((ActionEvente)->{

txtName.setText("");

txtPwd.setText("");});(3)如果方法参数只有一个,而且参数类型是可以推导的,可以省略小括号。示例代码::用Lambda表达式为btnCancel注册事件监听btnCancel.addActionListener(e->{

txtName.setText("");

txtPwd.setText("");});(2)Lambda表达式没有参数,()不能省,就像无参方法一样。示例代码:()->{for(inti=1;i<=10;i++)System.out.println(i);}使用说明:任务描述任务7.3创建用户管理系统菜单3根据系统需求分析,用户管理系统主界面包含“用户管理”“用户信息”“系统设置”三个菜单,“用户管理”菜单下有:“添加用户”“修改用户”“删除用户”“搜索用户”四个菜单项,“用户信息”菜单下有:“基本信息”“修改密码”两个菜单项,“系统设置”菜单下有:“系统日志”菜单项,如图7.12所示。本任务要求,根据需求分析,为用户管理系统设置菜单。具体任务任务7.3创建用户管理系统菜单3技能点1:构建菜单1.JMenuBar类,实现菜单栏(1)构造方法:JMenuBar()创建一个新的菜单栏(2)常用成员方法:

add(JMenumenu):将菜单menu添加到菜单栏的末尾2.JMenu类,实现菜单(1)常用构造方法:JMenu(Stringstr):创建一个文本为str的新的JMenu对象(2)常用成员方法:add(JMenuItemmenuItem):将menuItem添加到JMenu的末尾3.JMenuItem类,实现菜单项(1)常用构造方法

:JMenuItem(Stringtext):用指定的文本创建一个JMenuItem技术准备构建菜单需要用到javax.swing包下的JMenuBar,JMenu,JMenuItem类。任务7.3创建用户管理系统菜单3技能点2:为顶层容器设置菜单在JFrame类中提供了一个方法setJMenuBar(JMenuBarmenuBar)可以为顶层容器设置菜单。技术准备JMenuBarmenuBar=newJMenuBar();JMenumnFile=newJMenu("文件");JMenuItemmiNew=newJMenuItem("新建");mnFile.add(miNew);menuBar.add(mnFile);JFrameframe=newJFrame();//为窗体设置菜单frame.setJMenuBar(menuBar);任务7.3创建用户管理系统菜单3案例:构建如图所示的菜单教师演示任务实施任务7.3创建用户管理系统菜单3第一步:任务分析根据任务描述,分析完成任务需要用到类和对象,填写在表中组件类名对象名作用顶层容器

菜单栏

菜单

菜单项

任务实施任务7.3创建用户管理系统菜单3第二步:编码实现(1)新建一个Java项目,创建构建菜单类、构建窗体的类和包含main方法的类。(2)构建菜单(3)创建窗体(4)在main方法中创建MainForm的对象第三步:运行程序AEBCD小组协作,完成任务评价测试任务7.3创建用户管理系统菜单3评价指标评价标准分值得分创建项目正确创建Java项目10

正确显示窗体正确显示窗体10

正确显示菜单菜单个数、菜单项完整30

窗体属性正确大小、可见性、位置等符合要求30

编码规范变量命名规范、有合理的注释20

拓展提升——弹出式菜单的创建任务7.3创建用户管理系统菜单3弹出式菜单(又称为右键菜单)是不固定在菜单栏中,而是随处浮动的菜单。Swing包中的JPopupMenu类和JMenuItem给出了弹出式菜单的实现。弹出式菜单的创建和常规菜单创建方法类似,但弹出式菜单没有标题,不会总显示在窗体顶部,需要调用show()方法显示弹出式菜单,在show()方法中,要指定弹出式菜单的父组件和弹出式菜单在父组件中的位置。创建弹出式菜单的步骤如下:第一步:创建JPopupMenu类的对象第二步:添加菜单项第三步:设置弹出式触发器第四步:为容器添加鼠标事件,实现单击右键显示弹出式菜单任务7.3创建用户管理系统菜单3案例:创建弹出式菜单,用于为JPanel设置背景颜色教师演示任务描述任务7.4构建用户管理系统界面4在上一个任务中,已经根据需求分析完成了用户管理系统的主界面构建,在主界面中包含系统所需要的菜单。本任务在任务7.3的基础上,实现单击菜单选项,在主界面中加载对应的面板。比如单击“添加用户信息”,加载添加用户信息面板。具体任务任务7.4构建用户管理系统界面3技能点1:为容器指定布局管理器布局管理器:管理组件在容器中的位置和大小。每一个容器都有一个默认的布局管理器,JFrame默认的布局是BorderLayout,JPanel默认的布局是FlowLayout。Java提供的布局管理器类,包含java.awt包中,常见的布局管理器类有:FlowLayout(流布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、GridBagLayout(网格袋布局管理器)、BoxLayout(盒布局管理器)和CardLayout(卡片布局管理器)等。每个容器都有默认的布局管理器,也可以为容器指定布局管理器。为容器指定布局管理器的步骤:先创建一个布局管理器类的对象,接下来,调用容器类的setLayout()方法为容器指定布局。技术准备任务7.4构建用户管理系统界面4技能点2:FlowLayout的用法1.常见的构造方法(1)FlowLayout()(2)FlowLayout(intalign)(3)FlowLayout(intalign,inthgap,intvgap)2.常用成员方法setAlignment(int):设置布局的对齐方法setHgap(int):设置组件之间水平间隔setVgap(int):设置组件之间垂直间隔技术准备FlowLayout(流布局管理器):按照组件添加到容器的顺序从左到右显示组件,一行显示不下,换到下一行显示,默认组件在容器中是居中对齐,水平和垂直的间隔是5个像素。示例代码:创建了一个左对齐,水平和垂直间隔都是10的流布局管理器类的对象flFlowLayoutfl=newFlowLayout();fl.setAlignment(FlowLayout.LEFT);fl.setHgap(10);fl.setVgap(10);任务7.4构建用户管理系统界面4案例:创建一个GUI界面,包含两个按钮,分别显示“确定”和“取消”。要求:按钮左对齐,水平和垂直间隔10像素教师演示第一步:任务分析JPanel默认的布局是居中对齐,水平和垂直间隔为5个像素的FlowLayout,和题目要求不一致。因此,需要重新指定JPanel的布局。第二步:编码实现第三步:运行程序技能点3:GridLayout的用法任务7.4构建用户管理系统界面41.常用构造方法(1)GridLayout(introws,intcols):创建一个指定行数和列数的新的网格布局管理器的对象示例代码:GridLayoutgl=newGridLayout(3,2);(2)GridLayout(introws,intcols,inthgap,intvgap):创建一个指定行数、列数指定水平和垂直间隔的新的网格布局管理器的对象示例代码:GridLayoutgl=newGridLayout(3,2,10,10);技术准备GridLayout(网格布局管理器):将容器分成M行N列的矩阵,添加到GridLayout布局的容器中的组件的大小相同。通常用于界面中局部布局。任务7.4构建用户管理系统界面4案例:构建一个包含2行3列的6个按钮的界面教师演示第一步:任务分析要满足2行3列大小相同的6个按钮,容器需要采用GridLayout布局。第二步:编码实现

GridLayout

gl=newGridLayout(2,3);

//初始化GridLayoutthis.setLayout(gl);//为容器设置布局管理器第三步:运行程序技能点4:BorderLayout的用法任务7.4构建用户管理系统界面41.常用构造方法(1)BorderLayout():创建一个没有水平和垂直间距的边界布局对象(2)BorderLayout(inthgap,intvgap):创建一个指定水平和垂直间距的边界布局对象2.常用属性BorderLayout.NORTH:北面布局限制(容器上方)BorderLayout.SOUTH:南面布局限制(容器下方)BorderLayout.WEST:西面布局限制(容器左侧)BorderLayout.EAST:东面布局限制(容器右侧)BorderLayout.CENTER:中布局限制(容器中间)技术准备BorderLayout(边界布局管理器)把容器分成东、西、南、北、中五个方位3.将组件添加到指定方位的步骤第一步:创建一个BorderLayout的对象第二步:为容器指定布局管理器

第三步:将组件添加到容器指定方位任务7.4构建用户管理系统界面4案例:编写一个简易计算器面教师演示计算器的界面原型如图所示。包含一个编辑框和若干按钮,编辑框位于上方,4行4列共16个按钮大小相等技能点5:GridBagLayout的用法任务7.4构建用户管理系统界面41.GridBagLayout构造方法

GridBagLayout():创建一个新的网格袋布局管理器类的对象2.成员方法(1)setConstraints(Componentcomp,GridBagConstraintsconstraints)功能:给comp组件设置constraints约束3.GridBagConstraints的常用属性gridx,gridy,anchor等技术准备GridBagLayout(网格袋布局管理器)可以指定组件在容器中的位置(具体的某一行,某一列),而且组件的大小可以不相同,是一种比较灵活的布局管理器。GridBagLayout和GridBagConstraints一起使用,GridBagConstraints类指定使用GridBagLayout类布置的组件的约束。GridBagLayout的使用步骤第一步:创建GridBagLayout,GridBagConstraints的对象GridBagLayoutgbl=newGridBagLayout();GridBagConstraintsgbc=newGridBagConstraints();第二步:为容器指定布局panel.setLayout(gbl);第三步:给组件添加约束gbl.setConstraints(lblMsg,gbc);第四步:把受约束的组件添加到容器里任务7.4构建用户管理系统界面4案例:参照界面原型图,用网格袋布局完善用户登录界面教师演示技能点6:实现单选按钮任务7.4构建用户管理系统界面4实现单选按钮的步骤:第一步:创建JRadioButton的对象第二步:创建ButtonGroup的对象第三步:将JRadioButton的对象添加到ButtonGoup中技术准备单选按钮是在多个选项中选择其中一个,因此必须对单选按钮进行分组。要实现单选按钮需要用到JRadioButton和ButtonGroup类。JRadioButton用于创建单选按钮,ButtonGroup可实现单选按钮的组对象。示例代码:创建单选按钮组,实现性别选择JRadioButtonrbMale=newJRadioButton("男");JRadioButtonrbFemale=newJRadioButton("女");ButtonGroupbg=newButtonGroup();bg.add(rbFemale);bg.add(rbFemale);任务实施任务7.4构建用户管理系统界面3第一步:任务分析根据任务描述,本任务需要构建七个界面,并为菜单项添加事件监听,实现点击某一个菜单项,加载对应的面板。添加用户信息面板采用的布局为网格袋布局,包含的组件及其相关的约束第二步:编写添加用户信息面板第三步:编写修改用户信息面板第四步:编写其余五个界面,并添加事件监听第五步:调试运行程序AEBCD小组协作,完成任务评价测试任务7.4构建用户管理系统界面3评价指标评价标准分值得分创建项目正确创建Java项目10

添加用户信息正确创建新建用户信息面板、添加事件监听10

修改用户信息正确创建修改用户信息面板、添加事件监听20

删除用户信息正确创建删除用户信息面板、添加事件监听20

用户基本信息正确创建查看用户信息面板、添加事件监听20

修改密码正确创建修改密码面板、添加事件监听10

编码规范变量命名规范、有合理的注释10

拓展提升——对话框的用法任务7.4构建用户管理系统界面31.选项对话框Swing包中JOptionPane类中包含一组static方法用于显示简单对话框。showMessageDialog():显示一条消息并等待用户点击OKshowComfirmDialog():显示一条消息并得到用户确认(OK/Cancel)showOptionDialog():显示一条消息并获得用户在一组选项中的选择showInputDialog():显示一条消息并获得用户输入的一行文本2.文件对话框在一个应用中,常常会用到打开和保存文件。Swing中提供了JFileChoose类,通过该类的showOpenDialog()方法可以显示打开文件对话框,showSaveDialog()方法可显示保存文件对话框。拓展提升——打开文件的步骤:任务7.4构建用户管理系统界面3JFileChooserfileChooser=newJFileChooser();第一步:创建一个JFileChooser对象(1)设置当前打开路径fileChooser.setMultiSelectionEnabled(true);(2)设置允许选择多个文件fileChooser.setMultiSelectionEnabled(true);第二步:完成对话框属性的设置intresult=fileChooser.showOpenDialog(this);第三步:显示对话框if(result==JFileChooser.APPROVE_OPTION){Filefile=fileChooser.getSelectedFile();

//读取文件内容}第四步:获得打开的文件任务7.4构建用户管理系统界面4案例:编写一个简单记事本,实现打开文件功能教师演示任务描述任务7.5用文件保存用户信息3在任务7.1到任务7.4已经实现创建用户登录界面和系统主界面,本任务实现用户登录成功后跳转到系统主界面。当点击添加用户信息时,将输入的用户信息写到user.dat文件中。具体任务任务7.5用文件保存用户信息3技能点1:文件输入流和输出流JDK中提供了大量的输入和输出类库,主要包含在java.io和java.nio中。字节流输入流的基类InputStream,字节输出流的基类OutputStream,字符输入流的基类是Reader,字符输出流的基类是Writer。常用的System.in和System.out也是流类,是InputStream类型,代表标准输入流,也就是接收来自键盘的输入。System.out是OutputStream的子类PrintStream类型,代表标准输出流,也就是将数据输出到屏幕。对文件进行读写时,常用到File类、FileInputStream、FileOutputStream、FileReader、FileWriter等类。技术准备任务7.5用文件保存用户信息3技术准备——File类的用法1.File类File类中用于访问文件或者目录,提供了大量对文件操作相关的方法。File类的对象可以表示一个绝对路径的文件对象,或者相对路径的文件对象,也可以表示一个目录。示例代码:Filefile;//文件名file=newFile(“JavaFile”);//父和子路径名file=newFile(“\\”,”JavaFile”);Filedir=newFile(“\\”);//File对象和路径名file=newFile(dir,”JavaFile”);任务7.5用文件保存用户信息3技能点2:随机读写文件1.常用构造方法(1)RandomAccessFile(Filefile,Stringmode)(2)RandomAccessFile(Stringname,Stringmode)2.常用成员方法(1)voidseek(longpos)(2)longgetFilePointer():返回文件指针的当前位置(3)longlength():以字节为单位返回文件长度(4)writeBytes(Strings):将s写入文件在读写大文件时,才用从头到尾顺序读写效率会比较低,Java中RandomAccessFile类可以实现对文件进行随机读取。技术准备任务7.5用文件保存用户信息3案例:在用户登录界面,当用户登录成功后,将用户登录情况(用户名,登录日期,登录时间)写入日志文件末尾教师演示第一步:任务分析实现将登录日志写入文件末尾需用到RandomAccessFile类,写入信息包括用户名和登录日期和时间。第二步:编码实现

RandomAccessFileraf=newRandomAccessFile("log.txt","rw");//创建解析日期和时间的对象SimpleDateFormatfmt=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");//获取格式化的系统日期和时间字符串StringdateStr=fmt.format(newDate());raf.seek(raf.length());//将文件指针定位到日志文件末尾//将用户名、登录日期和时间写入日志文件raf.writeBytes(name+":"+dateStr+"\n");技能点3:将对象写入文件任务7.5用文件保存用户信息3在Java中要实现从文件中读写对象,首先读写对象类要是序列号的类,需实现Serializable接口,其次用到java.io包中的ObjectOutputStream和ObjectInputStream类。1.序列化当想要永久存储对象(写入文件或者套接字)时,需要将对象转换成字节流,当从文件或者网络套接字读取对象时,需要将字节流转换成对象。将对象转换成字节流的过程称为序列化,将字节流转换成对象的过程称为反序列化。不是所有的对象都可以序列化的,可序列化的类必须实现Serializable接口,该接口没有抽象方法,因此只需要在定义类时加上implementsSerializable即可。技术准备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论