《JAVA程序设计》课件-项目八 软件使用_第1页
《JAVA程序设计》课件-项目八 软件使用_第2页
《JAVA程序设计》课件-项目八 软件使用_第3页
《JAVA程序设计》课件-项目八 软件使用_第4页
《JAVA程序设计》课件-项目八 软件使用_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

JAVA程序设计功能分析(界面)任务分析分析学生成绩管理系统的功能用户登录数据录入数据修改数据删除数据查询数据显示8.1概述GUI:GraphicsUserInterface,即图形用户界面,通过它可以方便进在用户和程序之间进行交互。AWTSwing常用的开发图形界面的包有两个一、AWT简介常用的AWT开发包主要有两个包含创建用户界面和绘制图形图像的所有类。提供处理由AWT组件所引发的各类事件的接口和类。java.awt.event(1)感觉过敏AWT是JavaAPI的一部分,它为开发图形用户界面提供了实现各种组件、布局管理器和事件处理器的类和接口。二、Swing简介1Swing是第二代GUI开发工具集,是构筑在AWT上层的一组GUI组件的集合,为保证可移植性,它完全用Java语言编写,与AWT相比,Swing提供了更完整的组件,引入了许多新的特性和能力。32通常将Swing组件称为轻量级组件,将AWT组件称为重量级组件。尽量不要将AWT和Swing组件混合使用,容易出现BUG。三、AWT的组件类GUI组件按照功能可分为容器组件和基本组件。12容器组件是用以容纳与组织其他界面成分和元素的组件。基本组件是图形用户界面的基本单位,其自身不能再包含其它界面元素,基本组件充当着人机交互的媒介,可以接受来自用户的鼠标动作或键盘输入,能够以文本、图形等方式向用户显示信息等。三、AWT的组件类Component:绝大多数GUI窗口元素的父类。MenuComponent:AWT菜单体系的父类。抽象类。Event:Java中提供事件处理机制的重要类。Graphics:与绘图及图形显示相关的一个类。几个重要的AWT组件类四、Component(组件)类Component类是AWT包中的一个抽象类,Java中的图形组件大多数都是Component类的子类。JComponent类继承自Component类,常用的Swing组件,如JLabel、JButton等都是JComponent类的子类。四、Component(组件)类由于Component为是所有图形组件类的直接或间接父类,它包含许多图形组件类共有的成员变量和方法。四、Component(组件)类1、常用的成员变量LEFT_ALIGNMENTRIGHT_ALIGNMENT2、构造方法Component()四、Component(组件)类3、常用方法voidadd(Componentcomp)01voidsetForeground(Colorc)02voidsetFont(Fontf)03voidsetVisible(booleanb)04用于在容器组件内添加组件。四、Component(组件)类3、常用方法voidsetLocation(intx,inty)05voidsetSize(intw,inth)06voidsetBounds(intx,inty,intw,inth)07五、Container(容器)类Container类是AWT包中的类,主要用来放置其它组件,所以称作“容器”,它直接继承自Component类。voidremove(Componentcomp)voidsetLayout(LayoutManagermgr)主要方法在AWT包中容器类派生的子类有:窗口(Window)、面板(Panel)、对话框(Dialog)、滚动面板(ScrollPane)等。六、Swing容器及组件Swing组件分为顶层容器、中间层容器和基本组件3种类型。132顶层容器有4个:JWindow、JFrame、JDialog、JApplet,它们都属于重量级组件。JComponent类是所有轻量级组件的父类,它是AWT包中容器类Container类的子类,因此,所有的轻量级组件也都是容器。中间层容器介于顶层容器和一般Swing组件之间,常用的有JPanel、JScrollPane、JSplitPane、JInternalFrame。顶层容器都含有一个默认的内容面板,可供Swing组件放入其中。任务实施演示学生成绩管理系统的执行过程。任务小结通过任务分析和学习,学生主要了解学生成绩管理系统的基本功能,熟悉GUI组件的相关知识。任务分析学生成绩管理系统的主界面如下8.2窗口和菜单一、窗口框架窗口Frame是AWT应用程序中最常用的基本窗口组件之一,Frame对象可以有边框、标题栏、菜单栏、窗口缩放功能按钮(最大化、最小化、关闭)。1、JFrame类的常用方法JFrame()JFrame(Stringtitle)publicvoidsetTitle(Stringtitle)publicvoidsetBounds(intx,inty,intw,inth)publicvoidsetSize(intw,inth)publicvoidsetLocation(intx,inty)publicvoidsetVisible(booleanb)pulbicvoidsetLayout(LayoutManagerl)publicvoidsetBackground(Colorc)一、窗口2、创建窗口对象通常需要以下几个步骤一、窗口010203导入AWT开发工具包中的所有类。importjava.awt.*。定义用户类,通常用extends扩展Frame。向窗口内添加组件。04在构造方法中设置窗口的标题、位置、大小、颜色、布局等。2、创建窗口对象通常需要以下几个步骤一、窗口0506使窗口可见。启动事件处理机制,为窗口设置关闭应用程序的功能,设置窗口内组件的事件。例:创建一个Frame,蓝色背景,大小300*100。3、窗口与屏幕一、窗口Toolkittool=getToolkit();dimensiondim=tool.getScreenSize();intw=dim.width;inth=dim.height;获取屏幕大小例:使窗口与屏幕大小相同。例:使窗口在屏幕上居中。二、菜单条、菜单、菜单项常用方法:publicvoidadd(Menumenu)将菜单条放置到菜单中的方法,窗口调用方法setMenuBar(MenuBarbar);构造方法:MenuBar()1、菜单条:MenuBar二、菜单条、菜单、菜单项构造方法常用方法Menu()Menu(Strings)publicvoidadd(MenuItemitem)publicMenuItemgetItem(intn)publicintgetItemCount()2、菜单:Menu二、菜单条、菜单、菜单项构造方法常用方法publicvoidsetEnabled(booleanb)publicStringgetLabel()MenuItem()MenuItem(Strings)3、菜单项:MenuItem二、菜单条、菜单、菜单项使用Menu类的addSeparator()方法。5、复选框菜单项如果想在选择这个菜单时出现一个对号标记,可以使用CheckboxMenuItem类创建这个菜单项。6、嵌入子菜单Menu可以不仅添加MenuItem对象,也可以添加Menu对象,被添加的菜单称为子菜单。4、增加菜单分隔线二、菜单条、菜单、菜单项例:创建一个窗口,添加菜单“窗口颜色”,其中的菜单项有“红色”、“绿色”、“灰色”8、SWing中的菜单7、菜单项的单击事件:AtionEventJMenuBarJMenuJMenuItemJCheckBoxMenuItemJPopupMenuJSeparator任务实施主要特征importjava.awt.*;classMyFrameextendsFrame{

MenuBarm;

Menum1,m2,m3,m4;

MenuItemm11,m12,m13,m14,m15;

……任务实施主要特征super("学生成绩管理系统");

setBackground(Color.cyan);

setBounds(100,100,400,400);任务实施主要特征m=newMenuBar();

m1=newMenu(“数据维护”);m2=newMenu(“数据查询”);m3=newMenu(“数据统计”);m4=newMenu(“系统维护”);

……任务实施主要特征m.add(m1);

m.add(m2);

……

setMenuBar(m);

setVisible(true);

validate();任务小结通过完成任务,主要掌握界面应用程序的创建步骤,掌握窗口的属性,菜单的组成,菜单的建立。任务分析学生成绩管理系统中,对学生信息录入、修改和删除等操作反映在数据库中,那么通过Java程序如何完成数据库的录入、修改和删除操作呢?8.3数据库的插入、更新和删除publicintexecuteUpdate(Stringsql)

可以对数据库表中的记录进行更新、添加和删除。如:

try{

sql.executeUpdate("updatecjsetname='张明远'wherenumber=101");

}

catch(SQLExceptione)

{}SQL语句对象调用方法8.4预编译的SQL语句对象当向数据库发送一个SQL语句,数据库中的SQL解释器负责把SQL语句生成底层的内部命令,然后执行该命令,完成有关的数据操作。如果不断地向数据库提交SQL语句势必增加数据库中SQL解释器的负担,影响执行的速度如果应用程序能针对连接的数据库,事先就将SQL语句解释为数据库底层的内部命令,然后直接让数据库去执行这个命令,显示不仅减轻了数据库的负担,而且也提高了访问数据库的速度。8.4预编译的SQL语句对象一、对于JDBC如果使用Connection和某个数据库建立了连接对象con,那么con就可以调用preparedStatement(Stringsql)

方法对SQL语句进行编译预处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,该对象调用下列方法都可以使得该底层的内部命令被数据库执行:ResultSetexecuteQuery()booleanexecute()intexecuteUpdate()8.4预编译的SQL语句对象二、在对SQL语句进行预处理时在对SQL语句进行预处理时可以使用通配符“?”来代替字段的值,只要在预处理语句执行前再设置通配符所表示的具体值即可。

如:

PreparedStatementsql=con.preparedStatement("select*fromcjwheremath<?");

……

sql.setInt(1,88);

sql.executeQuery();8.5执行存储过程的SQL语句对象CallableStatement:Java用于执行SQL存储过程的接口。Connection对象调用prepareCall方法获取CallableStatement对象,如:

CallableStatementcs=conn.prepareCall("{callPROC_ZZH()}");

//调用存储过程PROC_ZZH()CallableStatement对象调用execute()方法执行存储过程,如:

cs.execute();任务实施对学生信息录入窗口,将录入的数据保存到数据库中。任务小结通过完成任务,学生主要掌握通过JDBC将数据插入到数据库中,对数据库中的数据进行修改和删除操作,并且能用预编译的SQL语句对象解决问题。任务分析在学生成绩管理系统中,需要录入学生的基本信息和成绩信息,下面是一个录入界面。8.3组件一、文本区TextArea用TextArea创建的对象称为文本区,用户可以在文本区中输入多行文本。8.3组件一、文本区TextAreaTextArea()TextArea(Strings)TextArea(intx,inty)构造方法8.3组件二、复选框和单选按钮组件在AWT中,复选框和单选框都用Checkbox类来实现。在Swing中,复选框用JCheckBox实现,单选按钮用JRadioButton实现。二、复选框和单选按钮组件1、复选框JCheckBoxJCheckBox复选框的名字不仅可以是字符串,还可以是一个图标。构造方法publicJCheckBox()publicJCheckBox(Strings)publicJCheckBox(Strings,booleanb)publicJCheckBox(Iconicon,booleanb)publicJCheckBox(Strings,Iconicon)publicJCheckBox(Strings,Iconicon,boolean常用方法isSelected():组件是否被选中。setSelectedIcon(Iconicon):设置组件选中时的图标。二、复选框和单选按钮组件1、复选框JCheckBoxJCheckBox复选框的名字不仅可以是字符串,还可以是一个图标。复选框的事件事件:ItemEvent接口:ItemListener接口方法:itemStateChange(ItemEvente)ItemEvent类的主要方法:

getSource()getItem()getStateChange()

getItemSelectable()二、复选框和单选按钮组件2、单选按钮JRadioButton单选按钮和复选框很类似,所不同的是,在若干个复选框中可以同时选中多个,而一组单选按钮同一时刻只能有一个被选中,因此,当创建若干个单选按钮后,再使用ButtonGroup再创建一个对象,利用这个对象将这若干个单选按钮归组,归到同一组的单选按钮每一时刻只能选择一个。二、复选框和单选按钮组件2、单选按钮JRadioButtonremove():从ButtonGroup对象中删除一个按钮。add():用来将一组按钮加入到ButtonGroup()对象中。构造方法ButtonGroup()123ButtonGroup()常用方法三、组合框Choice和JComboBox1、Choice在AWT中,组合框用Choice类来实现。21常用方法构造方法publicvoidadd(Stringname)publicvoidinsert(Stringname,intindex)publicvoidremove(Stringname)publicvoidremove(intindex)publicvoidremoveAll()publicChoice()三、组合框Choice和JComboBox1、Choice在AWT中,组合框用Choice类来实现。21常用方法构造方法publicintgetSelectedIndex()publicStringgetSelectedItem()publicintgetItemCount()publicvoidselect(intindex)publicvoidselect(Stringname)publicvoidaddItemListener(ItemListenerl)publicChoice()四、列表框List和JList1、List在AWT中,组合框用Choice类来实现。构造方法常用方法事件publicList()publicList(intn)publicList(intn,booleanb)publicint[]getSelectedIndexs()publicString[]getSelectedItems()ItemEvent(单击)ActionEvent(双击)任务实施01

02设计窗口添加组件任务小结通常学习,主要掌握AWT和Swing一些常用组件的属性和方法,学会在应用程序窗口中如何添加。8.3组件一、组合框Choice和JComboBox常用方法publicintgetSelectedIndex()publicStringgetSelectedItem()publicintgetItemCount()publicvoidselect(intindex)publicvoidselect(Stringname)publicvoidaddItemListener(ItemListenerl)Choice二、列表框List和JList1、List与组合框相似,不同的是列表框可以多选。构造方法常用方法事件publicList()publicList(intn)publicList(intn,booleanb)publicint[]getSelectedIndexs()publicString[]getSelectedItems()ItemEvent(单击)ActionEvent(双击)三、表格JTable1、List表格组件以行和列的形式显示数据,允许对表格中的数据进行编辑。JTable():创建默认模型表格。JTable(inta,intb):创建a行b列的默认模型表格。JTable(Objectdata[][],ObjectcolumnName[]):创建默认模型表格对象,并且显示由data指定的二维数组的值,其列名由数组columnName指定。构造方法01三、表格JTable1、List表格组件以行和列的形式显示数据,允许对表格中的数据进行编辑。StringgetColumnName(intcol)ObjectgetValueAt(introw,intcol)voidsetValueAt(ObjectaValue,introw,intcol)intgetColumnCount()intgetRowCount()intgetRowEditingRow()intgetEditingRow()voidselectAll()常用方法028.4容器一、面板Panel类Panel类是Container(容器)类的子类,通过Panel类创建的对象称为面板。Panel型容器的默认布局是FlowLayout型布局。经常在一个面板中添加若干个组件后,再把面板放到另一个容器中。8.4容器二、ScrollPane类ScrollPane类是Container(容器)类的子类,通过Panel类创建的对象称为滚动面板。与Panel不同的是ScrollPane创建的面板带有滚动条,而且只能向滚动面板添加一个组件。JScrollPane类。8.5布局管理器当把组件添加到容器中时,希望控制组件在容器中的位置,这就需要用到布局设计的知识。FlowLayout:流式布局BorderLayout:边界式布局GridLayout:网格式布局CardLayout:卡片式布局1234java.awt包中常用的布局类有一、FlowLayout:流式布局FlowLayout类创建的对象称为流式布局。FlowLayout型布局是Panel型容器的默认布局,即Panel及其子类创建的容器对象,如果不专门为其指定布局,则它们的布局就是FlowLayout。一、FlowLayout:流式布局1、构造方法12如:FlowLayoutflow=newFlowLayout();

如果一个容器con使用这个布局对象:

con.setLayout(flow);

那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列,每一行中的组件都居中排列,组件之间的默认水平和垂直间隙是5个像素。其中对齐方式aligin可以取值FlowLayout.LEFT、FlowLayout.CENTER、FlowLayout.RIGHT。FlowLayout()FlowLayout(intaligin,inthgap,intvgap)一、FlowLayout:流式布局2、常用函数publicvoidsetAlignment(intalign)设置布局的对齐方式。publicvoidsetVgap(intvgap)设置布局的垂直间隙。publicvoidsetHgap(inthgap)设置布局的水平间隙。123二、BorderLayout:边界式布局BorderLayout布局是Window型容器的默认布局。01BorderLayout布局将容器空间简单地划分为东、西、北、中5个区域,中间的区域最大。每加入一个组件都应该指明把这个组件加在哪个区域中。区域是由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示。02二、BorderLayout:边界式布局例如,一个使用BorderLayout布局的容器con,可以使用add方法将一个组件b添加到中心区域:con.add(b,BorderLayout.CENTER);

或con.add(BorderLayout.CENTER,b);03添加到某个区域的组件将占据整个区域。每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。使用BorderLayout布局的容器最多能添加5个组件,如果容器中需要加入超过5个组件,就必须使用容器的嵌套或改用其他的布局策略。三、CardLayout:卡片式布局使用CardLayout的容器可以容纳多个组件,但实际上同一时刻只能从这些组件中选出一个来显示,就像一叠“扑克牌”每次只能显示最上面一张一样,这个被显示的组件将占据所有的容器空间,依次排序。三、CardLayout:卡片式布局假设有一个容器con,使用CardLayout的一般步骤如下:1创建CardLayout对象作为布局,如,CardLayoutcard=newCardLayout();2使用容器的setLayout()方法为容器设置布局,如,con.setLayout(card);3调用容器的方法add(Strings,Complnnemtb)将组件b加入容器,并给出了显示该组件的代号s。组件的代号是另外给的,和组件的名字没有必然联系。不同的组件代号互不相同。最先加入con的是第一张,依次排序。三、CardLayout:卡片式布局假设有一个容

温馨提示

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

评论

0/150

提交评论