java 核心课件-第10章

上传人:我*** 文档编号:145246734 上传时间:2020-09-18 格式:PPT 页数:31 大小:175KB
返回 下载 相关 举报
java 核心课件-第10章_第1页
第1页 / 共31页
java 核心课件-第10章_第2页
第2页 / 共31页
java 核心课件-第10章_第3页
第3页 / 共31页
java 核心课件-第10章_第4页
第4页 / 共31页
java 核心课件-第10章_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《java 核心课件-第10章》由会员分享,可在线阅读,更多相关《java 核心课件-第10章(31页珍藏版)》请在金锄头文库上搜索。

1、第10章 GUI编程之AWT,熟练创建和管理窗口; 熟练使用各组件; 理解java事件处理机制,并灵活运用。,10.1 AWT的概念及层次结构,GUI(Graphical User Interface); Component:是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互; Container:一般的AWT容器对象,是一个可包含其他 AWT 组件的组件; Window:Window 对象是一个没有边界和菜单栏的顶层窗口。窗口的默认布局是 BorderLayout; Frame:Frame 是带有标题和边框的顶层窗口; Dialog:Dialog 是一个带标题和边界的窗口,一般

2、用于从用户处获得某种形式的输入; Panel: Panel 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。 Applet:applet 是一种不能单独运行但可嵌入在其他应用程序中的小程序。 Applet 类必须是任何嵌入 Web 页或可用 Java Applet Viewer 查看的 applet 的超类。,10.2 Component类,Component类是一个抽象类; 由它继承而来的组件、容器会用到它的一些方法; 注意:当容器有布局管理器时,则组件的大小、位置一般按布局管理器去做,而不用Component中相关的这些方法。,Container类,是W

3、indow、Panel的父类,直接应用它做界面比较少; 其添加、删除、设置布局管理器的方法应掌握,在其子类中常用。,10.4 Window类,Frame的父类,直接应用它做界面比较少; 其常用方法应掌握 其show方法已过时。从JDK1.5版开始,由setVisible方法取代。,10.5 Frame类,注意:默认布局管理器是BordorLayout; 要调用其显示方法,才显示出来; 一般要指定其大小。,import java.awt.*; class MyFrame public static void main(String args) Frame f = new Frame(“myFra

4、me”); f.setSize(600, 400); f.setLocation(100, 100); f.setBackground(Color.blue); f.setVisible(true); ,通过继承Frame类来设计界面,import java.awt.*; class YourFrame extends Frame YourFrame() super(“yourFrame”); setSize(600, 400); setLocation(100, 100); setBackground(Color.blue); setVisible(true); public static

5、void main(String args) YourFrame yf = new YourFrame(); ,10.6 Label类,它是一种组件,可以放到容器中,import java.awt.*; class MyFrame public static void main(String args) Frame f = new Frame(myFrame); Label l = new Label(标签); l.setBackground(Color.green); l.setForeground(Color.red); f.add(l); f.setSize(600, 400); f.s

6、etLocation(100, 100); f.setBackground(Color.blue); f.setVisible(true); ,通过继承Frame类添加,import java.awt.*; class YourFrame extends Frame Label l = new Label(标签); YourFrame() super(“yourFrame); l.setBackground(Color.green); l.setForeground(Color.red); add(l); setSize(600, 400); setLocation(100, 100); se

7、tBackground(Color.blue); setVisible(true); public static void main(String args) YourFrame yf = new YourFrame(); ,10.7 Button类,它也是一种组件,可以响应用户的点击事件,import java.awt.*; class MyFrame public static void main(String args) Frame f = new Frame(myFrame); Label l = new Label(标签); Button b = new Button(“按钮”);

8、l.setBackground(Color.green); l.setForeground(Color.red); b.setBackground(Color.green); b.setForeground(Color.red); f.add(l); f.add(b); ,10.8 布局管理器,10.8.1 框架布局管理器,一般用于界面分布不太规则的时候; 改变容器大小其南北区域和东西区域的宽度不会改变; add(l, BorderLayout.NORTH); add(b, BorderLayout.SOUTH);,10.8.2 网格布局管理器,主要用于将容器平均分配成n行m列; 改变容器大小

9、,组件大小发生改变,始终填满整个容器。 setLayout(new GridLayout(2, 2); add(l); add(b);,10.8.3 流式布局管理器,Panel的默认布局管理器; 改变容器大小,其组件大小不变。 setLayout(new FlowLayout();,10.9 Panel类,Frame类的局限性:只能同时指定一种布局管理器; 因此引入Panel类:它可以按某种布局管理器的布局方式容纳组件,并将其放到Frame中; 一个Frame中可以放多个Panel;且可以指定摆放Panel的布局管理器。,import java.awt.*; class MyFrame ext

10、ends Frame Panel pn1 = new Panel(new GridLayout(1, 2); Panel pn2 = new Panel(); Label lb1 = new Label(标签1); Label lb2 = new Label(标签2); Button btn1 = new Button(按钮1); Button btn2 = new Button(按钮2); MyFrame() super(myFrame); add(pn1); pn1.add(lb1); pn1.add(lb2); add(pn2, BorderLayout.SOUTH); pn2.add(

11、btn1); pn2.add(btn2); setSize(200, 100); setLocation(100, 100); setVisible(true); public static void main(String args) MyFrame mf = new MyFrame(); ,10.10 事件处理,简单的说,java中的事件是交由事件监听器处理的。 事件源对象:能注册监听器对象并向它们发送事件的对象; 程序中的事件源对象是通过事件对象的getSource方法得到的。 事件对象:event,事件类的对象。 事件类分为两类: 低级事件:鼠标事件、键盘事件; 语义事件:点击事件、选

12、择事件等; 语义事件包含有低级事件,但一般捕捉语义事件。 事件监听器对象:实现了专门的监听器接口的类的实例。 Java的事件处理,主要是按自己的需求实现监听器。,Java主要事件及其监听器接口,注意:java的事件处理是有队列的,因此不要在事件处理中放太复杂的处理过程。,实现事件处理过程的步骤,在类声明中,声明实现其监听器接口; 在类中实现该接口的方法; 在类中添加该监听器对象。,import java.awt.*; import java.awt.event.*; class MyFrame extends Frame implements ActionListener MyFrame()

13、btn1.addActionListener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=btn1) btn2.setVisible(!btn2.isVisible(); ,用匿名内部类实现事件处理,class MyFrame extends Frame MyFrame() btn1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(e.getSource()=btn1) btn2.se

14、tVisible(!btn2.isVisible(); ); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); ,10.11 文字输入组件,import java.awt.*; class TextTest extends Frame Panel p1 = new Panel(); Panel p2 = new Panel(new BorderLayout(); TextField tf = new TextField(6); TextArea ta

15、 = new TextArea(, 6, 24, TextArea.SCROLLBARS_NONE); TextTest() super(Text); setLayout(new GridLayout(1, 2); add(p1); p1.add(tf); add(p2); p2.add(ta); tf.setEchoChar(*); setSize(400, 150); public static void main(String args) TextTest t = new TextTest(); t.setVisible(true); ,为TextFeild添加事件响应,import j

16、ava.awt.*; import java.awt.event.*; class TextTest extends Frame implements ActionListener TextTest() tf.addActionListener(this); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) if(e.getSource()=tf) ta.setText(ta.getText() + tf.getText() + n); ,10.12 复选框和单选按钮,CheckboxGroup类不是组件,是一个支持类。,class CheckboxTest extends Frame Checkbox cb1 = new Checkbox(英语); Checkbox cb2 = new Checkbox(日语); Checkbo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号