创建JFrame窗口 内容
发布时间:2024-11-12
发布时间:2024-11-12
创建JFrame窗口
一.复习提问,引入新课:
复习提问流程控制的知识点,再引入Java GUI、Swing、JFrame 等相关内容。
二.新课教学:
1.1创建JFrame窗口
【1】创建用户登录窗口
【任务描述】
创建1个用户登录窗口,具体要求如下:
(1)设置窗口风格为Windows风格。
(2)设置窗口标题为“用户登录”。
(3)设置窗口大小的宽度为300,高度为150。
(4)设置窗口图标为QQ1.gif。
(5)控制窗口位于屏幕中心位置。
(6)控制窗口移到最前。
(7)设置窗口可见。
(8)设置关闭行为:当窗口关闭时,隐藏并处理该窗口
【任务实现】
在NetBeans集成开发环境中创建项目Unit04,在项目Unit04中创建类Java4_1,在该类中输入程序代码。
【程序运行】
程序Java4_1.java的运行结果如图1所示。
图1程序Java4_1.java的运行结果
1.2在JFrame窗口中添加组件
【任务2】在用户登录窗口中添加JLabel组件
【任务描述】
创建1个用户登录窗口,创建1个标签对象,将标签添加到窗口容器中。
【任务实现】
在项目Unit04中创建类Java4_2,在该类中输入程序代码。
【任务2】的程序代码
import java.awt.Container;
import javax.swing.*;
public class Java4_2 extends JFrame {
JLabel lblUserName;
public Java4_2() {
this.setTitle("用户登录"); // 设置窗口标题
lblUserName = new JLabel("用户名"); // 创建标签对象
Container objContainer = this.getContentPane(); // 获取窗口容
器
objContainer.add(lblUserName);// 将标签添加到窗口容器中
this.setSize(300, 150); // 设置窗口大小
this.setVisible(true); // 设置窗口可见
}
public static void main(String[] args) {
new Java4_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处理事件涉及几个重要的概念:事件源、监听者、事件接口。
(1)事件源
能够产生事件的对象称为事件源,例如按钮、文本框、菜单等,
鼠标或键盘在事件源上操作将产生事件,不同的事件源会产生不同的事件,例如单击按钮将产生动作事件(ActionEvent),打开窗口将产生窗口事件(WindowEvent)。
(2)监听者
实现事件响应的关键是一旦产生事件,监听者必须自动执行响应程序。监听者是指对事件进行监听,以便对发生的事件进行处理的对象。事件源通过调用相应的方法将某个对象注册为监听者。每个事件源都有注册事件监听者的方法,例如,通过调用如下方法为按钮类JButton注册动作事件监听者:按钮变量名.addActionListener(监听者);
(3)事件接口
事件接口规定了监听者需要实现的用于处理事件的方法。一个类的对象如果能作为监听者,那么该类必须实现相应的事件接口,即必须在类体中给出该接口中所有方法的方法体。动作事件的接口为ActionListener,该接口中只有一个方法:public void actionPerformed(ActionEvent e),该方法就是响应单击按钮事件的方法。
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个【我的记事本】窗口。
(2)在【我的记事本】窗口中添加1个菜单栏JMenuBar,在菜单栏容器中添加4个菜单JMenu:【文件】、【编辑】、【格式】和【帮助】。
(3)在【文件】菜单中添加4个菜单项JMenuItem和1根分隔线,在【编辑】菜单中添加5个菜单项和1根分隔线,在【格式】菜单中添加1个复选框菜单项,在【帮助】菜单中添加1个菜单项。
(4)设置好各个菜单和菜单项的热键。
(5)设置好菜单项的快捷键。
(6)注册【退出】菜单项的动作事件监听者为当前对象。编写动作事件处理方法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所示。
图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(String text) ;
其中参数text用于指定弹出快捷菜单的文本内容。
弹出式快捷菜单一般通过鼠标事件实现,示例代码如下所示。
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
【任务实现】
在项目Unit04中创建类Java4_6,在该类中输入程序代码。
【程序运行】
程序Java4_6.java的运行成功后,先调整多行文本框的尺寸,使其进入编辑状态,在多行文本框中单击鼠标右键,然后在弹出的快捷菜单中选择【复制】单选按钮。再一次在多行文本框中单击鼠标右键,在弹出的快捷菜单中指向【文件】级联菜单项【新建】,如图12所示。
图12程序Java4_6.java的运行结果
1.7在JFrame窗体中创建与使用工具栏
【任务7】为记事本窗体添加工具栏
【任务描述】
(1)创建1个【我的记事本】窗口。
(2)在【我的记事本】窗口中添加1个工具栏JToolBar,在工具栏容器中添加6个按钮JButton:【新建】、【打开】、【保存】、【复制】、【剪切】、【粘贴】和【退出】、2根分隔线。要求鼠标移到按钮上时出现边框.
(3)注册工具栏按钮【新建】和【退出】的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码响应用户的单击。
【知识必备】
使用JToolBar类创建一个工具栏对象,然后使用add()方法将按钮添加到工具栏中即可。JToolBar类的构造方法如下所示。
① JToolBar() ;
② JToolBar(String text) ;
③ JToolBar(int orientation) ;
④ JToolBar(String text , int orientation) ;
其中参数text用于设置工具按钮的文本内容,参数orientation用于设置工具按钮的位置。
【任务实现】
在项目Unit04中创建类Java4_7,在该类中输入程序代码。
【程序运行】
运行程序Java4_7.java,先调整多行文本框的尺寸,使其进入编辑状态,将鼠标指针指向工具按钮显示对应的提示信息,这里指向【新建】按钮,显示“新建文件”的提示信息,如图13所示。
图13程序Java4_7.java的运行结果
单击工具栏中的【新建】按钮,在多行文本框中添加“新建一个文件”的文本内容,如图14所示。单击工具栏中的【退出】按钮则会关闭“我的记事本”,退出程序运行状态。
图14 在多行文本框中添加“新建一个文件”的文本内容
1.8在可视化环境中设计窗口与添加组件
【任务8】可视化设计用户登录程序
【任务描述】
在NetBeans IDE可视化设计环境中创建如图15所示的【用户登录】窗口,在“用户名”文本字段域中输入正确的用户名,在“密码”口令字段域中输入正确的密码,然后单击【登录】按钮则会弹出“成功登录系统”的提示信息对话框,否则会弹出“用户名有误”或者“密码不正确”的提示信息对话框。单击【取消】按钮会弹出一个供用户做出选择的对话框。
图15【用户登录】窗口
【知识必备】
1.初识包
包是类和接口的集合,或者说包是类和接口的容器,它将一组类或接口集中到一起,在物理上包被转换成一个文件夹,包中还可以再有包,形成一种层次结构。
2.使用package创建包
创建包就是将类与接口放入指定的包中,创建包通过在类和接口的源文件中使用package语句实现。
声明包的语句格式如下所示。
package 包名称1 [.包名称2…] ;
例如:package package4_8;
3.Java中常用的包
Java本身提供了以下几个常用的包:
(1)http://ng包。
(2)java.io包。
(3)java.nio包。
(4)java.util包。
(5)http://包。
(7)java.awt。
(8)java.awt.event。
(9)java.applet。
(10)javax.servlet。
4.使用import导入包中的类
(1)从包中导入指定类的语法格式如下:
import 包名称.类名
例如:import java.util.Calendar;
包名称对应于文件夹名称,类名称指明所要导入的类,包名称可以包含多个层次,形式如“父包名称1.子包名称2”所示。
(2)从包中导入该包全部类的语法格式如下:
import 包名称.*
例如:import javax.swing.*;
“*”表示引入该包中的所有类、接口和异常等。
【任务实现】
1.在NetBeans集成开发环境中创建Java包
在NetBeans集成开发环境的【项目】窗口中右键单击Java项目Unit04,在弹出的快捷菜单中选择【新建】-【Java包…】命令。
弹出【New Java包】对话框,在该对话框的“包名”文本框中输入包的名称,这里输入“package4_8”,然后单击【完成】按钮即可完成包的创建。
2.创建JFrame窗体Java4_8
在Java应用程序项目Unit04中右键单击包名称“package4_8”,在弹出的快捷菜单中指向【新建】,然后单击菜单命令【JFrame窗体】。弹出【New JFrame 窗体】对话框,在该对话框中“类名”文本框输入“Java4_8”,如图19所示。然后单击【完成】按钮,完成JFrame窗体Java4_8的创建。
3.在JFrame窗体Java4_8中添加必要的组件
NetBeans集成开发环境中的【组件面板】如图20所示。
上一篇:管理制度执行情况评估报告
下一篇:公开课教案-隔离与物种的形成