创建JFrame窗口 内容

发布时间: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所示。

创建JFrame窗口 内容.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219