创建JFrame窗口 内容_第1页
创建JFrame窗口 内容_第2页
创建JFrame窗口 内容_第3页
创建JFrame窗口 内容_第4页
创建JFrame窗口 内容_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

创建JFrame窗口一.复习提问,引入新课:复习提问流程控制的知识点,再引入JavaGUI、Swing、JFrame等相关内容。二.新课教学:1.1创建JFrame窗口【1】创建用户登录窗口【任务描述】创建1个用户登录窗口,具体要求如下:(1)设置窗口风格为Windows风格。(2)设置窗口标题为“用户登录”。(3)设置窗口大小的宽度为300,高度为150。(4)设置窗口图标为QQ1.gif。(5)控制窗口位于屏幕中心位置。(6)控制窗口移到最前。(7)设置窗口可见。(8)设置关闭行为:当窗口关闭时,隐藏并处理该窗口【任务实现】在NetBeans集成开发环境中创建项目Unit04,在项目Unit04中创建类Java4_l,在该类中输入程序代码。程序运行】程序Java4_1.java的运行结果如图1所示图1程序Java4_1.java的运行结果1.2在JFrame窗口中添加组件【任务2】在用户登录窗口中添加JLabel组件【任务描述】创建1个用户登录窗口,创建1个标签对象,将标签添加到窗口容器中。【任务实现】在项目Unit04中创建类Java4_2,在该类中输入程序代码。【任务2】的程序代码importjava.awt.Container;importjavax.swing.*;publicclassJava4_2extendsJFrame{JLabellblUserName;publicJava4_2(){this.setTitle("用户登录”); //设置窗口标题lblUserName=newJLabel("用户名”);//创建标签对象ContainerobjContainer=this.getContentPane();//获取窗口容器objContainer.add(lblUserName);//将标签添加到窗口容器中this.setSize(300,150);//设置窗口大小this.setVisible(true); //设置窗口可见}publicstaticvoidmain(String[]args){newJava4_2();}}【程序运行】程序Java4_2.java的运行结果如图2所示。图2程序Java4_2.java的运行结果1.3合理布局容器中的组件【任务3】运用手工布局方式布局用户登录窗口中的组件【任务描述】创建1个用户登录窗口,在该窗口容器中添加4个标签对象、1个文本字段组件、1个口令字段组件和2个按钮组件,运用手工布局方式布局窗口中的组件和设置组件的大小。【知识必备】Java为了实现跨平台的特性并且获得动态的布局效果,将容器内所有组件安排给一个“布局管理器”负责管理,将组件的排列顺序、大小、位置等功能授权给对应的容器布局管理器来管理。(1)流式布局(FlowLayou)使用流式布局时,组件从左上角开始,按从左到右、从上到下的方式排列。这种布局方式在默认情况下,组件居中,间隙为5像素,它是面板和Applet的默认布局方式。(2)边界布局(BorderLayout)使用边界布局时,组件被置于容器的东、南、西、北、中的位置这种布局方式是JFrame容器、JWindow窗口和JDialog对话框等对象的默认布局方式。(3)网格布局(GridLayout)使用网格布局时,将容器区域划分为一个矩形网格,组件按行和列排列。当所有的组件大小相同时,可以使用网格布局。网格布局以行为基准,按行优先顺序排列,在组件数目多时自动扩展列,在组件数目少时自动收缩列,行数始终不变。(4)卡片布局(CardLayout)使用卡片布局时,组件像卡片一样排列,多个组件拥有同一个显示区域,但同一时刻只能显示一个组件。(5)网格袋布局(GridBagLayout)网格袋布局与网格布局类似,也在网格中定位组件,不同的是,它不显式规定网格中的行数和列数,而是根据它布局的组件的约束条件确定行数和列数,并且允许组件跨越多个网格单元。【任务实现】在项目Unit04中创建类Java4_3,在该类中输入程序代码。【程序运行】程序Java4_3.java的运行结果如图4所示。图4程序Java4_3.java的运行结果1.4事件监听与使用对话框【任务4】响应动作事件与使用对话框【任务描述】参考程序Java4_3_2.java创建了1个用户登录窗口Java4_4,该窗体类继承自JFrame,实现ActionListener监听接口。在窗体类的构造方法中注册【取消】按钮btnCancel的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码响应用户的单击,代码中使用对话框输出提示信息。【知识必备】1.动作事件Java处理事件涉及几个重要的概念:事件源、监听者、事件接口。事件源能够产生事件的对象称为事件源,例如按钮、文本框、菜单等,鼠标或键盘在事件源上操作将产生事件,不同的事件源会产生不同的事件,例如单击按钮将产生动作事件(ActionEvent),打开窗口将产生窗口事件(WindowEvent)。(2)监听者实现事件响应的关键是一旦产生事件,监听者必须自动执行响应程序。监听者是指对事件进行监听,以便对发生的事件进行处理的对象。事件源通过调用相应的方法将某个对象注册为监听者。每个事件源都有注册事件监听者的方法,例如,通过调用如下方法为按钮类JButton注册动作事件监听者:按钮变量名.addActionListener(监听者);(3)事件接口事件接口规定了监听者需要实现的用于处理事件的方法。一个类的对象如果能作为监听者,那么该类必须实现相应的事件接口,即必须在类体中给出该接口中所有方法的方法体。动作事件的接口为ActionListener,该接口中只有一个方法:publicvoidactionPerformed(ActionEvente),该方法就是响应单击按钮事件的方法。2.鼠标事件鼠标动作所引起的事件称为鼠标事件。鼠标事件的事件源一般为容器。当鼠标按下、释放、单击、进来、离开、移动、拖动时会引发鼠标事件(MouseEvent类),MouseEvent类存于java.awt.event包中。可以通过实现java.awt.event包中的MouseListener接口和MouseMotionListener接口处理鼠标事件。3.事件适配器Java中提供了MouseAdapter类(鼠标适配器)和MouseMotionAdapter类(鼠标移动适配器)来处理鼠标事件,MouseAdapter类实现了MouseListener接口,MouseMotionAdapter类实现了MouseMotionListener接口,这些类称为适配器(Adapter)类。适配器类覆盖了接口中的所有方法,但方法体都为空{},这样,通过继承适配器类实现事件响应就不必实现接口中的所有方法了,只需重写需要的方法,无关方法不用实现。事件适配器为我们提供了一种简单的实现监听器的手段,可以适当减少程序代码的编写量。【任务实现】在项目Unit04中创建类Java4_4,在该类中输入程序代码。【程序运行】程序Java4_4.java的运行结果如图7所示。图7程序Java4_4.java的运行结果单击【取消】按钮,会弹出如图8所示的【提示信息】对话框单击【是】将退出登录,且关闭登录窗口。图8【提示信息】对话框1.5在JFrame窗体中创建与使用菜单【任务5】为记事本窗体添加菜单【任务描述】创建1个【我的记事本】窗口。在【我的记事本】窗口中添加1个菜单栏JMenuBar,在菜单栏容器中添加4个菜单JMenu:【文件】、【编辑】、【格式】和【帮助】。在【文件】菜单中添加4个菜单项JMenuItem和1根分隔线,在【编辑】菜单中添加5个菜单项和1根分隔线,在【格式】菜单中添加1个复选框菜单项,在【帮助】菜单中添加1个菜单项。设置好各个菜单和菜单项的热键。设置好菜单项的快捷键。注册【退出】菜单项的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码响应用户的单击。【知识必备】菜单组件可以使窗口显示菜单选项。Swing提供了3个层次的菜单类,最上层的菜单栏JMenuBar是存放菜单的容器。第2层为菜单JMenu,可以直接添加到JMenuBar中创建顶层菜单,也可以作为其他

JMenu菜单的子菜单。第3层的JMenuItem为菜单项,JCheckBoxMenuItem为带复选框的菜单项,JRadioButtonMenuItem为带单选按钮的菜单项。创建菜单时首先要使用JMenuBar建立一个菜单栏,然后使用JMenu建立菜单,每个菜单再使用JMenuItem建立菜单项。【任务实现】在项目Unit04中创建类Java4_5,在该类中输入程序代码。【程序运行】程序Java4_5.java的运行结果如图9所示。图9程序Java4_5.java的运行结果在【我的记事本】窗口单击【文件】菜单弹出的下拉菜单如图10所示,单击【格式】菜单弹出的下拉菜单如图11所示。新建但}Ctrl-h新建但}Ctrl-h打刑且}Ctrl-O另存对轻}Ctrl-S退出凶Ctrl-E格式帮助(出自动换行{翌)图10菜单弹出的下拉菜单图11菜单弹出的下拉菜单单击【文件】菜单的【退出】命令,即可退出【我的记事本】。1・6在JFrame窗体中创建与使用快捷菜单【任务6】为记事本窗体添加快捷菜单【任务描述】(1) 创建1个【我的记事本】窗口。(2) 在【我的记事本】窗口中添加1个快捷菜单栏JPopupMenu,在快捷菜单栏容器中添加1个菜单JMenu【文件】、3个单选按钮菜单项和1个菜单项,【文件】菜单包含3个下级菜单项。(3) 设置好菜单项的快捷键。(4) 注册快捷菜单中【退出】菜单项的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码响应用户的单击。(5) 继承适配器MouseAdapter创建内部类,扩展MouseAdapter类,用来响应鼠标事件弹出快捷菜单。【知识必备】JPopupMenu快捷菜单是一种特别形式的Menu,其性质与Menu基本一致,但是JPopupMenu并不固定在窗口中的固定位置,而是由鼠标和系统判断决定其位置。JPopupMenu的构造方法如下所示。JPopupMenu();JPopupMenu(Stringtext);其中参数text用于指定弹出快捷菜单的文本内容。弹出式快捷菜单一般通过鼠标事件实现,示例代码如下所示。publicvoidmouseReleased(MouseEvente){if(e.isPopupTrigger()){popupMenu.show(e.getComponent(),e.getX(),e.getY());}}【任务实现】在项目Unit04中创建类Java4_6,在该类中输入程序代码。【程序运行】程序Java4_6.java的运行成功后,先调整多行文本框的尺寸,使其进入编辑状态,在多行文本框中单击鼠标右键,然后在弹出的快捷菜单中选择【复制】单选按钮。再一次在多行文本框中单击鼠标右键,在弹出的快捷菜单中指向【文件】级联菜单项【新建】,如图12所示。ffi 我的记事本 -口^9玄:件{F} ►新建{町 Ctrl-M®境制(C)cni-c打JF(O}Ciil-OO剪切{T}3i-x另存对(罰Orl-SO粘贴{P}cni-v退出图12程序Java4_6.java的运行结果1.7在JFrame窗体中创建与使用工具栏【任务7】为记事本窗体添加工具栏【任务描述】(1)创建1个【我的记事本】窗口。在【我的记事本】窗口中添加1个工具栏JToolBar,在工具栏容器中添加6个按钮JButton:【新建】、【打开】、【保存】、【复制】、【剪切】、【粘贴】和【退出】、2根分隔线。要求鼠标移到按钮上时出现边框.注册工具栏按钮【新建】和【退出】的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码响应用户的单击。【知识必备】使用JToolBar类创建一个工具栏对象,然后使用add()方法将按钮添加到工具栏中即可。JToolBar类的构造方法如下所示。JToolBar();JToolBar(Stringtext);JToolBar(intorientation);JToolBar(Stringtext,intorientation);其中参数text用于设置工具按钮的文本内容,参数orientation用于设置工具按钮的位置。【任务实现】在项目Unit04中创建类Java4_7,在该类中输入程序代码。【程序运行】

运行程序Java4_7.java,先调整多行文本框的尺寸,使其进入编辑状态,将鼠标指针指向工具按钮显示对应的提示信息,这里指向【新建】按钮也,显示“新建文件”的提示信息,如图13所示。图13程序Java4_7.java的运行结果单击工具栏中的【新建】按钮□,在多行文本框中添加“新建一个文件”的文本内容,如图14所示。单击工具栏中的【退出】按钮则会关闭“我的记事本”,退出程序运行状态。图14在多行文本框中添加“新建一个文件”的文本内容1.8在可视化环境中设计窗口与添加组件【任务8】可视化设计用户登录程序任务描述】在NetBeansIDE可视化设计环境中创建如图15所示的【用户登录】窗口,在“用户名”文本字段域中输入正确的用户名,在“密码”口令字段域中输入正确的密码,然后单击【登录】按钮则会弹出“成功登录系统”的提示信息对话框,否则会弹出“用户名有误”或者“密码不正确”的提示信息对话框。单击【取消】按钮会弹出一个供用户做出选择的对话框。图15【用户登录】窗口【知识必备】1.初识包包是类和接口的集合,或者说包是类和接口的容器,它将一组类或接口集中到一起,在物理上包被转换成一个文件夹,包中还可以再有包,形成一种层次结构。2.使用package创建包创建包就是将类与接口放入指定的包中,创建包通过在类和接口的源文件中使用package语句实现。声明包的语句格式如下所示。package包名称1[.包名称2…];例如:packagepackage4_8;3.Java中常用的包Java本身提供了以下几个常用的包:(1) java..lang包。(2) java.io包。(3) java.nio包。(4) java.util包。(5) 包。(7) java.awt。(8) java.awt.event。(9) java.applet。(10) javax.servlet。4.使用import导入包中的类(1) 从包中导入指定类的语法格式如下:import包名称.类名例如:importjava.util.Calendar;包名称对应于文件夹名称,类名称指明所要导入的类,包名称可以包含多个层次,形式如“父包名称1.子包名称2”所示。(2) 从包中导入该包全部类的语法格式如下:import包名称.*例如:importjavax.swing.*;“*”表示引入该包中的所有类、接口和异常等。【任务实现】1.在NetBeans集成开发环境中创建Java包在NetBeans集成开发环境的【项目】窗口中右键单击Java项目Unit04,在弹出的快捷菜单中选择【新建】一【Java包…】命令。弹出【NewJava包】对话框,在该对话框的“包名”文本框中输入包的名称,这里输入“package4_8”,然后单击【完成】按钮即可完成包的创建。创建JFrame窗体Java4_8在Java应用程序项目Unit04中右键单击包名称“package4_8”,在弹出的快捷菜单中指向【新建】,然后单击菜单命令【JFrame窗体】。弹出【NewJFrame窗体】对话框,在该对话框中“类名”文本框输入“Java4_8”,如图19所示。然后单击【完成】按钮,完成JFrame窗体Java4_8的创建。在JFrame窗体Java4_8中添加必要的组件NetBeans集成开发环境中的【组件面板】如图20所示。

图20NetBeansIDE集成开发环境中的【组件面板】在【组件面板】中单击选择合适的组件,然后将鼠标指针移到窗体中,在需要添加组件的位置单击即可。按此方法添加多个组件,且调整各个组件的位置。窗体的设计外观如图15所示,窗体中组件的属性设置如表13所示。表13JFrame窗体Java4_8中组件的属性设置组件类型属性名称属性值属性名称属性值JLabel变量名称lblUserNametext用户名变量名称lblPasswordtext密码变量名称lbllmageiconlogin.gifJTextField变量名称jtfUserNametextadminJPasswordField变量名称jpfPasswordtext123456JButton变量名称btnLogintext登录变量名称btnCanceltext取消4.编写程序代码,实现程序功能打开Java应用程序“Java4_8.java”,切换到“源”,可以发现自动添加了一行代码“packagepackage4_8;",表示程序所属的包。(1)引入命名空间importjavax.swing.*;importjava.awt.*;(2)编写构造方法Java4_8的程序代码构造方法Java4_8的程序代码,其中语句,initComponents();”是创建JFrame窗体时系统自动生成的。程序代码publicJava4_8(){initComponents();//控制窗口启动时在屏幕中的位置DimensionthisScreen=Toolkit.getDefaultToolkit().getScreenSize();DimensionthisWin=this.getSize();this.setLocation((thisScreen.width-thisWin.width)/2,(thisScreen.height-thisWin.height)/2);}(3)编写事件过程btnLoginActionPerformed的程序代码在窗口的设计状态,双击【登录】按钮,切换到【源】窗口,进入事件过程btnLoginActionPerformed的编辑区域,此时【源】窗口会显示源代码编辑工具栏。接着在事件过程btnLoginActionPerformed内部输入程序代码,其主要功能是实现用户登录功能。在NetBeansIDE集成开发环境中的【属性】窗口,切换到“事件”选项卡,如图23所示。图23【属性】窗口的“事件”选项卡(4)编写事件过程btnCancelMouseClicked的程序代码在窗口的编辑状态,右键单击【取消】按钮,在弹出的快捷菜单中依次指向【事件】f【Mouse】,单击命令【mouseClicked】,切换“源”,进入事件过程btnCancelMouseClicked的编辑区域,输入程序代码。其主要功能是实现关闭窗口和退出程序。事件过程btnCancelMouseClicked的程序代码privatevoidbtnCancelMouseClicked(java.awt.event.MouseEventevt){if(evt.getSource()==btnCancel){intn=JOptionPane.showConfirmDialog(null,//所属窗口"你选择了退出登录,是否真的退出?",//对话框提示信息"提示信息",//对话框标题JOptionPane.YES_NO_OPTION//按钮类型);if(n==JOptionPane.YES_OPTION){dispose();//关闭窗口System.exit(0);//退出程序}}}【程序运行】程序Java4_8.java的运行结果如图25所示,如果单击【登录】按钮弹出如图26所示的【消息】对话框,如果单击【取消】按钮弹出如图27所示的【提示信息】对话框。图25程序Java4_8.java的运行结果图26【消息】对话框图图26【消息】对话框图27【提示信息】对话框1.9应用JTable组件设计JavaGUI程序【任务9】可视化设计购物车商品管理程序【任务描述】在NetBeansIDE可视化设计环境中创建如图28所示的“购物车商品管理”窗口,该窗口运行时,在JTable组件中显示商品数据,包括商品编码、商品名称、价格和数量4列。在JTable组件中单击某一行,在该组件的下方将显示对应的商品编码,如果单击【删除】按钮,将从JTable组件中删除对应的行。在窗口下方的商品编码文本字段框、商品名称文本字段框、商品价格文本字段框和数量文本字段框中分别输入相应的数据,然后单击【添加】按钮,将新的商品数据添加到JTable组件的商品数据表中。单击【清空】按钮将会清空JTable组件中的所有商品数据行。图28“购物车商品管理”窗口【知识必备】JTable(表)组件以行和列的形式显示数据,允许对表格中的数据进行编辑。使用表格时,首先生成一个TableModel类的对象表示该数据,然后以该TableModel对象作为参数生成JTable类的对象,并将TableModel对象中的数据以表格形式显示出来。【任务实现】1.在NetBeans集成开发环境中创建Java包在Java项目Unit04中创建包“package4_9"。创建JFrame窗体在Java应用程序项目Unit04的package4_9包中创建JFrame窗体Java4_9。在JFrame窗体Java4_9中添加必要的组件窗体Java4_9的设计外观如图28所示,窗体中组件的属性设置如

表17所示。表17JFrame窗体Java49中组件的属性设置组件类型属性名称属性值属性名称属性值JTable变量名称jTableGoodsInfomodel[TableModel]JButton变量名称jbtnAddtext添加变量名称jbtnDeletetext删除变量名称jbtnCleartext清空JLabel变量名称jlblPrompttext你选择的商品编码是:变量名称jlbllContenttextjLabel2变量名称jlblGoodsCodetext商品编码:变量名称jllblGoodsNametext商品名称变量名称jlblPricetext商品价格:变量名称jlblNumbertext购买数量:JTextField变量名称jtfGoodsCodetext(空)变量名称jtfGoodsNametext(空)变量名称jtfPricetext(空)变量名称jtfNumbertext(空)4.编写程序代码,实现程序功能打开Java应用程序“Java4_9.java”,切换到“源”。(1)引入命名空间importjavax.swing.

温馨提示

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

评论

0/150

提交评论