java .net 图形界面_【教案】第11章图形用户界面编程基础

本教程讲解了图形用户界面编程的基础知识,包括Java和.NET中的事件处理、容器与布局管理、常用GUI组件以及鼠标和键盘事件。重点介绍了Frame、Panel的使用,Java的FlowLayout、BorderLayout和GridLayout布局策略,以及TextComponent的使用和事件处理。通过实例展示了如何创建和交互图形界面元素。
摘要由CSDN通过智能技术生成

课程教案

章节名称

第11章图形用户界面编程基础

课程类型

理论课□ 讨论课□ 习题课□ 实验课□ 上机课□ 技能课□ 其他□

授课时间

教学进度

学生考勤

应到: 实到:

请假: 旷课:

教学方法

讲授、板书

目的要求:

理解委托时间处理机制、相互角色及相互关系;理解事件接口与相应适配器类的关系与使用差异;掌握Frame、Panel等容器的使用;掌握Java常用的布局策略;掌握按钮和两种文本部件的使用和事件处理;了解鼠标和键盘事件的处理;

重点难点:

Frame、Panel等容器的使用;Java常用的布局策略;按钮和两种文本部件的使用和事件处理;

课后作业:

P200 2(3);

作业批改记录:

教学后记:

教学过程:

复习:什么是异常,Java中如何自定义异常?

引入:现在软件操作界面大多设计为图形用户界面形式;Java

API提供了大量支持图形用户界面的类,这节我们来具体学习这些类【5分钟】

新课讲授:

1 图形用户界面核心概念【10分钟】

容器---可以容纳GUI部件(按某种布局)

----窗体

、面板

♣ 第1步 创建窗体

Frame f = new Frame(“标题“)

♣ 第2步 创建GUI部件

创建按钮、标签

Button b=new Button(“计数”);

Label dis=new Label(“…0…”);

♣ 第3步 将部件加入窗体容器布局设置

setLayout(new FlowLayout())

♣ 第4步 处理事件

事件源----发生事件

事件处理 ------委托事件处理模型

----委托给事件监听者

事件监听者---处理事件

----符合相应接口要求

事件委托处理—图

button.addActionListener( ActionListener a );

谁作为监听者合适?

---要其actionPerformed中方便访问事件处理相关对象

♣ 区分事件源

编写一个窗体应用程序,在窗体中安排两个文本框,一个标签,两个标记为“+”和“*”的按钮,从两个文本框输入两个数,点击“+”按钮将文本框中两个数进行加法运算,结果显示在标签中;点击“*”按钮将文本框中两个数进行减法运算,结果显示在标签中。

♣ 在动作事件处理代码中区分事件源

♥ 关键代码

public void actionPerformed(ActionEvent e) {

int

x1=Integer.parseInt(f1.getText());

int

x2=Integer.parseInt(f2.getText());

if (

e.getActionCommand().equals(“+”)

)

res.setText(""+(x1+x2));

else

res.setText(""+(x1*x2));

}

♥ 或者

public void actionPerformed(ActionEvent e) {

int

x1=Integer.parseInt(f1.getText());

int

x2=Integer.parseInt(f2.getText());

if (

e.getSource() == b1

)

res.setText(""+(x1+x2));

else

res.setText(""+(x1*x2));

}

♣ 关于事件适配器类

Java中为那些具有多个方法的监听者接口提供了事件适配器类,这个类通常命名为XxxAdapter,在该类中以空方法体实现了相应接口的所有方法

程序员设计可通过继承适配器类来编写监听者类,在类中只需给出关心的方法。

例11-2 处理窗体的关闭

2 容器与布局管理【10分钟】

2.1 FlowLayout(流式布局) 特点:是Panel的默认布局;从上到下、左到右排放,放不下再换至下一行; -----不会改变控件的大小。 按照参数要求安排部件间的纵横间隔和对齐方式

常用方法介绍:

public FlowLayout() 居中对齐方式,组件纵横间隔5个像素。

public FlowLayout(int align, int hgap, int vgap)

3个参数分别指定对齐方式、纵、横间距

public FlowLayout(int align) 参数规定对齐方式,组件纵横间距默认5个像素。

2.2 BorderLayout(边缘或方位布局) ---是Frame的默认布局;将容器内部空间分为东(East)、南(South)、西(West)、北(North)、中(Center)五个区域

控件的大小随容器大小改变。 按照参数要求安排部件间的纵横间隔和对齐方式

• public BorderLayout()

各组件之间的纵横间距为0

• public BorderLayout(int hgap, int vgap)

2个参数分别指定纵、横间距

加入组件:add(方位名字符串, 组件)

String[ ] borders = {"North", "East",

"South", "West", "Center"};

setLayout(new BorderLayout(10, 10));

for(int i = 0; i < 5; i++) {

add(borders[i], new Button(borders[i]));

}

【例 11-4】 实现一个简单的图像浏览器,部署“上一张”、“下一张”两个按钮,单击按钮可前后翻阅图片。

2.3 GridLayout布局

♣ GridLayout构造方法

♣ GridLayout布局—加入组件

2.4 CardLayout布局

♣ CardLayout布局---卡片翻动

3 常用GUI标准组件【10分钟】

3.1 GUI部件概述

Component类(抽象类)常用方法介绍

3.2 文本域(TextArea)和 文本框(TextField)

1、两者之间的区别是什么?

2、常用方法介绍

♣ 练习: 验证密码域只能输入数字字符

public void textValueChanged(TextEvent e) {

String s = pass.getText();

char last=s.charAt(s.length()-1);

if (! Character.isDigit(last)) {

hint.setText("只能是数字,重输:");

pass.setText("");

}

}

例11-7】在图形界面中,安排一个文本框和文本域。将文本框键入的字符同时显示在文本域中,也既同步显示。

4 鼠标和键盘事件【10分钟】

4.1 鼠标事件

共有7种情形,用 MouseEvent类的同名静态整型常量标志, 分别是

MOUSE_DRAGGED

MOUSE_ENTERED

MOUSE_EXITED

MOUSE_MOVED

MOUSE_PRESSED

MOUSE_RELEASED

MOUSE_CLICKED

♣ 鼠标事件的处理接口

MouseListener

负责接收和处理鼠标的press(按下)、release(释放)、click(点击)、enter(移入)和exit(移出)动作触发的事件;

MouseMotionListener

负责接收和处理鼠标的move(移动)和drag(拖动)动作触发的事件。

♣ MouseEvent类

public int getX() :返回发生鼠标事件的 X坐标。

public int getY() :返回发生鼠标事件的 Y坐标。

public Point getPoint() :返回

Point对象,也即鼠标事件发生的坐标点。

public int getClickCount() :返回鼠标点击事件的连击次数。

例11-8 高级语义事件和低级语义事件处理示例

4.2 键盘事件

包含 3个,分别对应

KeyEvent类的几个同名的静态整型常量KEY_PRESSED、 KEY_RELEASED、KEY_TYPED。

监听者接口是KeyListener

public void keyPressed(KeyEvent e)

某个键按下时执行。

public void keyReleased(KeyEvent e) 某键被释放时执行。

public void keyTyped(KeyEvent e)

按键被敲击。

KeyTyped 包含keyPressed 和KeyRelased 两个动作

♣ 如何获取击键值

getKeyChar()---获取输入字符(对字符键)

getKeyCode()---获取键的编码(对控制键)

键编码常量

KeyEvent.VK_LEFT) ----按键为左箭头

KeyEvent.VK_RIGHT) ---右箭头

KeyEvent.VK_UP) ----- 向上箭头

KeyEvent.VK_DOWN) ---向下箭头

【例11-9】用键盘事件实现例11-7的同样功能。

例11-10 小方框变色和移动

作业与练习【5分钟】

练习:p198 1;

课后作业:p200 2-4;

♥ 上机实践

1.编写窗体应用程序,统计一个文本域输入文本的行数、单词数和字符数。可在图形界面中安排一个按钮、一个文本域和一个标签,点击按钮开始统计,在标签中显示结果。

2.编写窗体应用程序,安排一个文本框、一个按钮和一个标签,从文本框录入一个数字(0~9),点击按钮将其对应的英文单词(如:zero,one等)显示在标签中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值