人工智能时代Java项目实战 课件 7-项目七-设计AWT与事件_第1页
人工智能时代Java项目实战 课件 7-项目七-设计AWT与事件_第2页
人工智能时代Java项目实战 课件 7-项目七-设计AWT与事件_第3页
人工智能时代Java项目实战 课件 7-项目七-设计AWT与事件_第4页
人工智能时代Java项目实战 课件 7-项目七-设计AWT与事件_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

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

文档简介

人工智能时代Java项目实战项目七设计AWT与事件·实现不同类别组件的显示·实现不同辅助类的显示·实现不同布局类的显示·使用AWT来计算学生总评刘丹

任务描述上海御恒信息科技公司接到某商务管理公司的项目订单,要求用AWT实现不同类别组件的显示。公司刚招聘了一名程序员小张,软件开发部经理要求他尽快熟悉AWT中的窗口、面板、标签、文本框、文本域、按钮、列表框、单选钮、复选框、菜单等组件类,并能搭建项目的整体架构,小张按照经理的要求开始做以下的任务分析。任务一

实现不同类别组件的显示用AWT实现不同类别组件的显示首先要构建主程序类、主窗口类和主面板类,其次构建标签类、文本框类、按钮类、复选框类、单选钮类、列表框类、菜单类,然后要封装包含事件方法的类,最后封装包含菜单、子菜单、菜单项的类。

任务分析任务一

实现不同类别组件的显示第一步:构建主程序类Chap0701MainProg,用以加载主窗口类Chap0702MainFrame。

任务实施任务一

实现不同类别组件的显示第二步:在主窗口类Chap0702MainFrame类中分别加载事件类Chap0709FrameEvent的对象、主面板类Chap0703MainPanel的对象、菜单类Chap0708MenuPanel的对象。

任务实施任务一

实现不同类别组件的显示第二步:在主窗口类Chap0702MainFrame类中分别加载事件类Chap0709FrameEvent的对象、主面板类 Chap0703MainPanel的对象、菜单类Chap0708MenuPanel的对象。

任务实施任务一

实现不同类别组件的显示

任务实施第三步:在主面板类Chap0703MainPanel类中分别加载标签类Chap0704LabelPanel的对象、文本框类Chap0705TextPanel的对象、按钮类Chap0706ButtonPanel的对象、Chap0707ChoicePanel复选框类的对象、菜单类Chap0708MenuPanel的对象。任务一

实现不同类别组件的显示

任务实施第三步:任务一

实现不同类别组件的显示

任务实施第三步:任务一

实现不同类别组件的显示

任务实施第四步:封装子面板标签类Chap0704LabelPanel。任务一

实现不同类别组件的显示

任务实施第四步:封装子面板标签类Chap0704LabelPanel。任务一

实现不同类别组件的显示

任务实施第五步:封装子面板文本框类Chap0705TextPanel。任务一

实现不同类别组件的显示

任务实施第五步:封装子面板文本框类Chap0705TextPanel。任务一

实现不同类别组件的显示

任务实施第六步:封装子面板复选框及单选钮类Chap0706ButtonPanel。任务一

实现不同类别组件的显示

任务实施第六步:封装子面板复选框及单选钮类Chap0706ButtonPanel。任务一

实现不同类别组件的显示

任务实施第七步:封装子面板列表框类Chap0707ChoicePanel。任务一

实现不同类别组件的显示

任务实施第七步:封装子面板列表框类Chap0707ChoicePanel。任务一

实现不同类别组件的显示

任务实施第八步:封装子面板主菜单类Chap0708MenuPanel。任务一

实现不同类别组件的显示

任务实施第八步:封装子面板主菜单类Chap0708MenuPanel。任务一

实现不同类别组件的显示

任务实施第九步:封装窗口事件类Chap0709FrameEvent。任务一

实现不同类别组件的显示

任务实施第十步:将以上类放入包project07.task01中进行调试,得到如下结果:任务一

实现不同类别组件的显示用AWT实现不同类别组件的显示

任务实施第十一步:封装学生菜单类StudentMenu(包括主菜单、子菜单、菜单项及事件):任务一

实现不同类别组件的显示

任务实施第十一步:封装学生菜单类StudentMenu(包括主菜单、子菜单、菜单项及事件):任务一

实现不同类别组件的显示

任务实施第十一步:封装学生菜单类StudentMenu(包括主菜单、子菜单、菜单项及事件):任务一

实现不同类别组件的显示

任务实施第十二步:将以上类放入包project06.task01中进行调试,得到如下结果:任务一

实现不同类别组件的显示封装学生菜单类StudentMenu1、将一个程序的多个不同功能拆分在多个类中,然后放入一个包内进行调试。2、主程序类加载主窗口类。3、主窗口类加载主面板类。4、主面板类加载各个子面板类。5、在各个子面板类中分别放置不同的组件(标签、文本框、按钮、复选框、

单选钮、列表框、主菜单等)。6、单独封装事件类并在需要的子面板上通过新建其对象来实现功能调用。7、主菜单、子菜单、菜单项、事件方法也可封装在一个类中进行测试。

任务小结任务一

实现不同类别组件的显示1、TextField类和TextArea类的区别

在Java的AWT(AbstractWindowToolkit)库中,TextField和TextArea是用于用户输入的组件,它们都可以用来接收用户的文本输入,但是它们之间有一些关键的区别:(1)单行与多行:

TextField是单行文本输入组件,用户只能在其中输入单行文本。

TextArea是多行文本输入组件,允许用户输入和编辑多行文本。(2)滚动条:

TextField没有滚动条,因为内容不会超出组件的可见宽度。

TextArea可以显示滚动条,当文本内容超出组件的可见区域时,用户可用滚动条来查看其他内容。(3)大小调整:

TextField通常有一个固定的大小,或者根据其父容器的布局管理器来确定大小。

TextArea可以动态调整大小以适应更多的文本内容,用户可以通过拖动来改变TextArea的大小。

任务拓展任务一

实现不同类别组件的显示(4)文本选择:

在TextField中,用户通常只能选择所有文本或无文本(通过设置选择范围),不能选择部分文本。

在TextArea中,用户可以使用鼠标或键盘来选择任意部分的文本。(5)用途:

TextField适用于简短的文本输入,如搜索框、用户名输入等。

TextArea适用于较长的文本输入,如评论、描述或文档编辑等。(6)文本换行:

TextField中的文本不会自动换行,如果文本长度超过了组件的宽度,超出的部分将不可见。

TextArea中的文本会自动换行,并且可以根据需要显示滚动条。

在选择使用TextField还是TextArea时,应根据实际的应用场景和用户需求来决定。如果只需要用户输入简短的文本,那么TextField就足够了;如果需要用户输入或编辑较长的文本,那么应该使用TextArea。

任务拓展任务一

实现不同类别组件的显示2、AWT中单选钮与复选框的区别

在JavaAWT(AbstractWindowToolkit)库中,单选钮(RadioButton)和复选框(CheckBox)都是用于让用户在一组选项中进行选择的组件,但它们之间存在一些关键的区别:(1)选择模式:

单选钮(RadioButton)是单选模式,用户只能从一组单选钮中选择一个选项。

复选框(CheckBox)是复选模式,用户可以从一组复选框中选择多个选项。(2)分组:

单选钮通常需要放在一个按钮组(ButtonGroup)中,以确保一次只有一个单选钮被选中。

复选框不需要特别分组,每个复选框都是独立的,可以单独选中或取消选中。(3)视觉表示:

单选钮在选中时显示一个圆点。

复选框在选中时显示一个勾选标记。

任务拓展任务一

实现不同类别组件的显示(4)用途:

单选钮适用于在多个互斥的选项中进行选择,例如性别(男/女/其他)。

复选框适用于在多个独立的选项中进行多选,例如选择兴趣或偏好设置。(5)事件处理:

单选钮在选中状态改变时会触发ItemEvent,通常需要监听ItemListener。

复选框在选中状态改变时也会触发ItemEvent,同样需要监听ItemListener。(6)布局:

单选钮通常水平或垂直排列,以便用户可以看到所有选项并做出选择。

复选框可以单独使用,也可以成组使用,通常也是水平或垂直排列。

在选择使用单选钮还是复选框时,应根据实际的应用场景和用户需求来决定。如果用户只能从一组选项中选择一个,那么应该使用单选钮;如果用户可以从多个选项中选择多个,那么应该使用复选框。

任务拓展任务一

实现不同类别组件的显示3、AWT中的Choice类

在JavaAWT(AbstractWindowToolkit)库中,Choice类提供了一个下拉菜单组件,允许用户从一组预定义的选项中选择一个选项。以下是Choice类的一些特点和使用方法:(1)显示选项:Choice组件默认显示下拉箭头按钮,用户点该按钮时,会显示下拉菜单,其中包含所有可用的选项。(2)添加选项:使用add(Stringitem)方法可以向Choice组件中添加选项。(3)删除选项:使用remove(Stringitem)方法可以删除指定的选项。

使用removeAll()方法可以清空Choice组件中的所有选项。(4)获取选中项:使用getSelectedItem()方法可以获取当前选中的选项。

使用getSelectedIndex()方法可以获取当前选中项的索引。(5)事件处理:Choice组件在选项改变时会触发ItemEvent,通常需要实现ItemListener接口来处理这些事件。

任务拓展任务一

实现不同类别组件的显示(6)布局:

Choice组件可以与其他AWT组件一起使用,通常需要将其添加到容器中,如Panel或Frame,并使用布局管理器来控制其位置和大小。

任务拓展任务一

实现不同类别组件的显示(7)示例代码:

Choice组件是一个简单的下拉菜单,适用于提供一组固定的选项供用户选择。如果需要更复杂的功能,如自定义渲染选项或更多的交互性,可能需要使用Swing库中的JComboBox,它是一个更高级的组件,提供了更多的功能和灵活性。

任务拓展任务一

实现不同类别组件的显示1、Java中的TextField类和TextArea类有何区别?2、Java中的AWT里的单选钮与复选框有何区别?3、Java中的AWT里的Choice类有何特点?

任务思考任务一

实现不同类别组件的显示上海御恒信息科技公司接到一家广告设计公司的项目订单,要求实现不同辅助类的显示。公司刚招聘了一名程序员小张,软件开发部经理要求他尽快熟悉在不同的面板上加载不同的图像和不同的字体与颜色,并能搭建项目的整体架构,小张按照经理的要求开始做以下的任务分析。

任务描述任务二

实现不同辅助类的显示实现不同辅助类的显示首先要导入awt包,其次要从Frame类中继承,然后要在类中的main()方法中封装标题、窗口大小,最后在main()方法中调用构造方法来显示不同的辅助类的效果。

任务分析任务二

实现不同辅助类的显示

任务实施第一步:新建自定义包project07.task02、导入java.awt包、封装辅助图像类MyImage。任务二

实现不同辅助类的显示

任务实施第一步:新建自定义包project07.task02、导入java.awt包、封装辅助图像类MyImage。任务二

实现不同辅助类的显示

任务实施第一步:新建自定义包project07.task02、导入java.awt包、封装辅助图像类MyImage。任务二

实现不同辅助类的显示

任务实施第一步:新建自定义包project07.task02、导入java.awt包、封装辅助图像类MyImage。任务二

实现不同辅助类的显示第二步:将以上类放入包project07.task01中进行调试,得到如下结果:

任务实施任务二

实现不同辅助类的显示封装辅助类MyImage显示不同的图像

任务实施第三步:在自定义包project07.task02中导入java.awt包、封装辅助字体颜色类MyToolkit。任务二

实现不同辅助类的显示

任务实施第三步:在自定义包project07.task02中导入java.awt包、封装辅助字体颜色类MyToolkit。任务二

实现不同辅助类的显示

任务实施第三步:在自定义包project07.task02中导入java.awt包、封装辅助字体颜色类MyToolkit。任务二

实现不同辅助类的显示

任务实施第三步:在自定义包project07.task02中导入java.awt包、封装辅助字体颜色类MyToolkit。任务二

实现不同辅助类的显示

任务实施第四步:将以上类放入包project07.task02中进行调试,得到如下结果:任务二

实现不同辅助类的显示封装辅助类MyToolkit显示字体和颜色1、为Toolkit新建对象,并用该对象加载Image图片对象。2、设计不同的辅助类面板,在其中用paint方法来绘制Image图片对象。3、分别新建Color和Font数组对象,存放不同的颜色和字体。4、用循环实现不同面板数组中不同的字体和颜色的显示。

任务小结任务二

实现不同辅助类的显示1、Toolkit类

Toolkit类是一个抽象类,它提供了与本地窗口系统交互的方法。每个JavaAWT组件都有一个与之关联的Toolkit对象,用于处理与组件相关的低级操作,如组件的渲染、颜色模型的管理等。以下是Toolkit类的一些主要特点:(1)系统默认工具包:可以通过Toolkit.getDefaultToolkit()方法获取系统默认的工具包实例。(2)本地操作:Toolkit提供了许多方法来执行本地操作,如创建图像、播放声音、获取屏幕尺寸等。(3)图像加载:可以使用getImage(Stringfilename)方法从文件中加载图像。(4)颜色模型:Toolkit提供了方法来获取和设置颜色模型。(5)屏幕尺寸:可以通过getScreenSize()方法获取屏幕的尺寸。

任务拓展任务二

实现不同辅助类的显示(6)事件队列:Toolkit还负责管理事件队列,处理组件事件。

示例代码:

在上面的示例中,我们获取了默认的Toolkit实例,并打印了屏幕的尺寸。

任务拓展任务二

实现不同辅助类的显示2、Image类

Image类是JavaAWT中的一个抽象类,用于表示图像。它提供了图像的基本操作,如加载、绘制和获取图像属性。Image类可以是任何图像格式,如GIF、JPEG或PNG。以下是Image类的一些主要特点:(1)图像表示:Image类是图像的抽象表示,它可以是静态图像或动画。(2)图像加载:可以通过getImage(URLurl)或getImage(Stringfilename)方法从文件或网络资源加载图像。(3)图像绘制:可以使用Graphics类的drawImage(Imageimg,intx,inty,ImageObserverobserver)方法在组件上绘制图像。(4)图像属性:可以获取图像的宽度、高度和属性信息。

任务拓展任务二

实现不同辅助类的显示(5)图像观察者:Image类支持图像观察者(ImageObserver)接口,用于处理图像加载过程中的事件。

示例代码:

任务拓展任务二

实现不同辅助类的显示

在上面的示例中,我们创建了一个Frame,并在其中绘制了一个从文件加载的图像。

需要注意的是,随着Java的发展,Image类和Toolkit类已经被新的API所补充和扩展,例如在Swing中,Image类被Icon接口和ImageIcon类所扩展,提供了更多的功能和灵活性。在实际的JavaGUI编程中,这些类和接口仍然是处理图像和图形的重要工具。

任务拓展任务二

实现不同辅助类的显示1、请问Toolkit类的功能是什么?它是如何加载图片的?2、请问如何批量生成Font对象和Color对象?

任务思考任务二

实现不同辅助类的显示

任务描述上海御恒信息科技公司接到一家教育管理公司的项目订单,要求实现不同布局类的显示。公司刚招聘了一名程序员小张,软件开发部经理要求他尽快熟悉边框布局、卡片布局、流式布局、网格包布局、网格布局,并能搭建项目的整体架构,小张按照经理的要求开始做以下的任务分析。任务三

实现不同布局类的显示用AWT实现不同布局类的显示首先要构建主类、主窗口类和主面板类,其次构建边框布局、卡片布局、流式布局、网格包布局、网格布局类,然后要封装包含事件方法的类,最后在主方法中测试各个不同的布局类。

任务分析任务三

实现不同布局类的显示第一步:构建边界布局类MyBorderLayout来实现组件在东、西、南、北、中这五个方位的布局。

任务实施任务三

实现不同布局类的显示第一步:构建边界布局类MyBorderLayout来实现组件在东、西、南、北、中这五个方位的布局。

任务实施任务三

实现不同布局类的显示第一步:构建边界布局类MyBorderLayout来实现组件在东、西、南、北、中这五个方位的布局。

任务实施任务三

实现不同布局类的显示第一步:构建边界布局类MyBorderLayout来实现组件在东、西、南、北、中这五个方位的布局。

任务实施任务三

实现不同布局类的显示第一步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施任务三

实现不同布局类的显示边界布局第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:构建卡片布局类MyCardLayout实现组件在不同卡片中的布局。

任务实施任务三

实现不同布局类的显示第二步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施卡片布局任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:构建卡片布局测试类MyCardTest,并通过事件来实现不同卡片页面的切换。

任务实施任务三

实现不同布局类的显示第三步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施卡片布局中不同卡片的切换任务三

实现不同布局类的显示第四步:构建流式布局类MyFlowLayout来实现组件自左向右方位的布局。

任务实施任务三

实现不同布局类的显示第四步:构建流式布局类MyFlowLayout来实现组件自左向右方位的布局。

任务实施任务三

实现不同布局类的显示第四步:构建流式布局类MyFlowLayout来实现组件自左向右方位的布局。

任务实施任务三

实现不同布局类的显示第四步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施任务三

实现不同布局类的显示流式布局第五步:构建网格包布局类MyGridBagLayout来实现组件在不规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第五步:构建网格包布局类MyGridBagLayout来实现组件在不规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第五步:构建网格包布局类MyGridBagLayout来实现组件在不规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第五步:构建网格包布局类MyGridBagLayout来实现组件在不规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第五步:构建网格包布局类MyGridBagLayout来实现组件在不规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第五步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施任务三

实现不同布局类的显示网格包布局第六步:构建网格布局类MyGridLayout来实现组件在规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第六步:构建网格布局类MyGridLayout来实现组件在规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第六步:构建网格布局类MyGridLayout来实现组件在规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第六步:构建网格布局类MyGridLayout来实现组件在规则表格布局中的显示。

任务实施任务三

实现不同布局类的显示第六步:将以上类放入包project07.task03中进行调试,得到如下结果:

任务实施任务三

实现不同布局类的显示网络布局1、BorderLayout类可以实现东、西、南、北、中的布局。2、CardLayout类可以实现一次只显示一张卡片的布局。3、FlowLayout类可以实现自左向右的流式布局。4、GridBagLayout类可以实现不规则表格的排列布局。5、GridLayout类可以实现规则表格的排列布局。

任务小结任务三

实现不同布局类的显示1、BorderLayout是JavaSwing库中的一种布局管理器,它允许你将组件放置在五个区域中的一个:北(North)、南(South)、东(East)、西(West)和中(Center)。每个区域只能包含一个组件,但是Center区域可以包含多个组件,并且它们会被平铺以填满剩余的空间。以下是BorderLayout的一些特点和使用方法:(1)特点:区域定位:可以将组件准确地放置在窗口的五个区域之一;空间管理:BorderLayout会自动调整组件的大小以适应容器的边界;灵活性:Center区域可以包含多个组件,并且它们会扩展以填满所有剩余的空间;组件对齐:组件在其区域内可以有不同的对齐方式。(2)使用方法:首先,需要创建一个使用BorderLayout的容器,其次,可以将组件添加到特定的区域。(3)调整和显示窗口的大小并使其可见。(4)通常还应该设置关闭操作frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

任务拓展任务三

实现不同布局类的显示(5)注意事项:

-如果没有明确指定,添加到BorderLayout容器的组件默认会被放置在Center区域。

-当容器大小发生变化时,North和South区域的组件会保持其首选高度,但会水平扩展以填满容器的宽度;East和West区域的组件会保持其首选宽度,但会垂直扩展以填满容器的高度;Center区域的组件会同时水平和垂直扩展以填满所有剩余的空间。

通过这种方式,BorderLayout提供了一种灵活且直观的方式来安排组件。

任务拓展任务三

实现不同布局类的显示2、CardLayout是JavaSwing库中的一种布局管理器,它允许你将组件像卡片一样堆叠起来,一次只能显示一个组件。这种方式特别适用于需要在同一区域显示不同界面或不同数据的场景,例如多页表单、电子幻灯片等。(1)特点:单次显示:在任何时候,CardLayout只显示其中的一个组件;卡片式管理:组件被组织成一系列“卡片”,可以按顺序或通过名字来访问;空间管理:CardLayout中的所有卡片都将占据相同的显示空间。(2)使用方法:首先,需要创建一个使用CardLayout的容器,其次,添加组件,然后,可以将组件添加到CardLayout容器中,并为每个组件指定一个名称,然后,切换卡片:可以通过调用CardLayout的方法来切换显示的卡片,最后,添加到框架,将包含CardLayout的面板添加到JFrame中。

任务拓展任务三

实现不同布局类的显示(3)常用方法:

-first(Containerparent):显示容器的第一张卡片。

-last(Containerparent):显示容器的最后一张卡片。

-previous(Containerparent):显示当前卡片的上一张卡片。

-next(Containerparent):显示当前卡片的下一张卡片。

-show(Containerparent,Stringname):显示指定名称的卡片。(4)注意事项:

-CardLayout中的所有组件必须具有唯一的字符串名称,以便可以通过名称来访问。

-当容器大小发生变化时,所有卡片都将调整大小以适应新的容器大小。

-CardLayout不提供直接的组件导航功能,因此通常需要额外的按钮或其他组件来控制卡片的切换。通过使用CardLayout,你可以创建多功能的用户界面,其中每个部分都是相互独立的,但共享相同的屏幕空间。

任务拓展任务三

实现不同布局类的显示3、FlowLayout是JavaSwing库中的一种布局管理器,它按照组件的添加顺序将组件放置在容器中。默认情况下,组件会被放置在同一行上,直到没有足够的空间,此时组件会换行到下一行。FlowLayout是Panel和Applet的默认布局管理器。

以下是FlowLayout的一些特点和使用方法:(1)特点:简单性:FlowLayout是最简单的布局管理器之一,易于理解和实现;灵活性:组件可以在水平方向上对齐,并可以在必要时换行;组件对齐:可以设置组件在容器中的对齐方式,例如左对齐、居中对齐或右对齐。(2)使用方法:首先,需要创建一个使用FlowLayout的容器,其次,将组件添加到FlowLayout容器中,然后可以设置组件在容器中的对齐方式,最后,将包含FlowLayout的面板添加到JFrame中。

任务拓展任务三

实现不同布局类的显示(3)常用构造函数:

-FlowLayout():创建一个默认的FlowLayout,组件左对齐,水平和垂直间距为5像素。

-FlowLayout(intalign):创建一个FlowLayout,允许指定组件的对齐方式(FlowLayout.LEFT、FlowLayout.CENTER、FlowLayout.RIGHT)。

-FlowLayout(intalign,inthgap,intvgap):创建一个FlowLayout,允许指定组件的对齐方式以及水平和垂直间距。(4)注意事项:

-FlowLayout不会对组件进行大小调整,每个组件都会保留其首选大小。

-当容器的大小改变时,组件的位置可能会发生变化,以适应新的尺寸。

-在FlowLayout中,组件之间的间距默认是相等的,但可以通过设置水平和垂直间距来调整。

FlowLayout适用于那些组件数量不固定,或者组件大小不一致的简单界面布局。然而,对于更复杂的布局需求,可能需要使用其他布局管理器,如GridBagLayout或BoxLayout。

任务拓展任务三

实现不同布局类的显示4、GridBagLayout是JavaSwing库中的一种非常灵活但相对复杂的布局管理器。它允许组件在容器中跨多个行和列扩展,并且可以设置不同行和列的相对大小。GridBagLayout使用GridBagConstraints类来控制组件的位置和大小。(1)特点:灵活性:可以精确控制组件的放置和大小;跨单元格:组件可以跨越多个行和列;权重分配:可以分配不同的权重给行和列,以控制它们的大小;锚点和对齐:可以设置组件在其单元格内的锚点和对齐方式。(2)使用方法:首先,需要创建一个使用GridBagLayout的容器,其次,为每个组件设置GridBagConstraints,然后,将组件添加到GridBagLayout容器中,并传递相应的GridBagConstraints,最后,将包含GridBagLayout的面板添加到JFrame中。

任务拓展任务三

实现不同布局类的显示(3)GridBagConstraints常用字段:

-gridx和gridy:指定组件的起始单元格位置。

-gridwidth和gridheight:指定组件跨越的单元格数。

-weightx和weighty:指定组件在行和列中的相对权重。

-fill:指定组件如何填充其显示区域(NONE、HORIZONTAL、VERTICAL或BOTH)。

-anchor:指定组件在其显示区域内的位置(例如CENTER、NORTH、NORTHEAST等)。

-insets:指定组件与其显示区域边缘之间的空间。(4)注意事项:

-使用GridBagLayout时,通常需要为每个组件创建一个新的GridBagConstraints实例,或者至少在添加新组件之前重置其属性。

-GridBagLayout需要更多的设置和调试,但提供了比其他布局管理器更高级的布局控制。

GridBagLayout非常适用于复杂的布局设计,其中组件的大小和位置需要精细控制。由于它的复杂性,通常需要更多的代码和调试来达到预期的布局效果。

任务拓展任务三

实现不同布局类的显示5、GridLayout是JavaSwing库中的一种布局管理器,它将容器划分为一个网格,每个网格单元大小相等。组件被放置在这个网格中,按照添加的顺序从左到右、从上到下排列。所有组件都将被调整到相同的大小,以适应网格单元。(1)特点:均匀分布:所有组件占据相同大小的空间;自动调整:组件会自动调整大小以适应网格单元;简单性:GridLayout的使用相对简单,适用于组件数量固定且需要均匀分布的情况。(2)使用方法:首先,需要创建一个使用GridLayout的容器,其次,将组件添加到GridLayout容器中,最后,将包含GridLayout的面板添加到JFrame中。(3)常用构造函数:

-GridLayout(introws,intcols):创建一个具有指定行数和列数的网格布局。

-GridLayout(introws,intcols,inthgap,intvgap):创建一个具有指定行数、列数以及水平和垂直间距的网格布局。

任务拓展任务三

实现不同布局类的显示(4)注意事项:

-如果在构造函数中只指定了行数或列数,另一个维度将自动设置为足够容纳所有组件的大小。

-当容器大小改变时,所有组件都会重新调整大小以适应新的网格单元。

-GridLayout不考虑组件的首选大小,而是将所有组件大小调整为网格单元的大小。

GridLayout适用于需要组件均匀分布的简单界面,例如计算器键盘或其他网格形式的界面。对于更复杂的布局需求,可能需要使用其他布局管理器,如GridBagLayout。

任务拓展任务三

实现不同布局类的显示1、BorderLayout类与FlowLayout类有何异同点?2、GridLayout类与GridBagLayout类有何异同点?3、CardLayout类如何实现显示第一张卡片、最后一张卡片、上一张卡片与下一张卡片?

任务思考任务三

实现不同布局类的显示上海御恒信息科技公司接到一家培训机构的项目订单,要求使用AWT来计算学生总评。公司刚招聘了一名程序员小张,软件开发部经理要求他尽快熟悉如何设计AWT与事件,并能进行整体项目设计与架构,小张按照经理的要求开始做以下的任务分析。任务描述任务四使用AWT来计算学生总评实现AWT来计算学生总评,首先要设计基本的AWT界面,其次要用对象数组来优化AWT界面,再次要添加事件处理来实现算法,最后设计异常处理来完善整个程序。任务分析任务四使用AWT来计算学生总评任务实施第一步:新建Chap07_test1类,在其中封装计算学生总评的基本AWT界面。任务四使用AWT来计算学生总评任务实施第一步:新建Chap07_test1类,在其中封装计算学生总评的基本AWT界面。任务四使用AWT来计算学生总评任务实施第一步:新建Chap07_test1类,在其中封装计算学生总评的基本AWT界面。任务四使用AWT来计算学生总评任务实施第一步:将以上类放入包project07.task04中进行调试,得到如下结果:任务四使用AWT来计算学生总评计算学员总评界面显示任务实施第二步:修改Chap07_test1类,在Chap07_test2类中使用对象数组来优化计算学生总评的界面。任务四使用AWT来计算学生总评任务实施第二步:修改Chap07_test1类,在Chap07_test2类中使用对象数组来优化计算学生总评的界面。任务四使用AWT来计算学生总评任务实施第二步:修改Chap07_test1类,在Chap07_test2类中使用对象数组来优化计算学生总评的界面。任务四使用AWT来计算学生总评任务实施第二步:修改Chap07_test1类,在Chap07_test2类中使用对象数组来优化计算学生总评的界面。任务四使用AWT来计算学生总评任务实施第二步:修改Chap07_test1类,在Chap07_test2类中使用对象数组来优化计算学生总评的界面。任务四使用AWT来计算学生总评任务实施第二步:将以上类放入包project07.task04中进行调试,得到任务四第一步所示的近似效果。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:新建Chap07_test3类,在其中实现计算学生总评的事件处理和异常处理。任务四使用AWT来计算学生总评任务实施第三步:将以上类放入包project07.task04中进行调试,得到如下结果:任务四使用AWT来计算学生总评学生总评计算的事件处理结果任务实施第三步:将以上类放入包project07.task04中进行调试,得到如下结果:任务四使用AWT来计算学生总评学生总评计算时输入字符产生数字格式系统异常任务实施第三步:将以上类放入包project07.task04中进行调试,得到如下结果:任务四使用AWT来计算学生总评学生总评计算时输入数字不在0-100之间的自定义异常任务小结1、实现AWT项目时先要设计基本窗体和组件。

温馨提示

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

最新文档

评论

0/150

提交评论