第6章Java图形用户界面教学课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第6章Java图形用户界面教学课件.ppt》由会员分享,可在线阅读,更多相关《第6章Java图形用户界面教学课件.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java面向对象程序设计第第6章章 Java图形用户界面图形用户界面教学内容掌握AWT抽象窗口工具的一些和简单使用掌握窗体的多种布局设计的简单使用掌握Swing GUI工具包的使用掌握图形用户界面的事件处理的简单使用理解事件适配器的原理以及简单的使用AWTAWT(Abstract Window Toolkit)抽象窗口工具包,是API为Java程序提供的创建图形用户界面GUI(Graphics User Interface图形用户界面)的工具集,该包包含了很多类和接口,用于Java Application的GUI编程。使用AWT的类和接口一般在java.awt包及其子包中, AWT包含两个核心
2、类Container(容器)和Component(组件)类。其类的层次结构如图6.1所示:容器和组件容器Container是用来组织和容纳其他界面成份和元素的组件,Java提供了相应的容器类,例如框架(JFrmae/Frame)、面板(JPanel/Panel)等类。组件Component是图形用户界面的基本单位,里面不再包含其他成份。组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮、一个标签等。组件不能独立显示出来,必须将组件放在一定的容器中才可以显示出来。有两种常用的Container:Window:其对象表示自由停泊的顶级窗口Panel:其对象可作为容纳其他
3、Component对象,不能独立存在,必须被添加到其他Container中(如Window或Applet)Frame类Frame类是window的子类,由Frame或其子类创建的对象为一个窗体。1、Frame类的常用构造方法如表6.1所示:表6.1构造方法主要功能()构造一个最初不可见的 Frame 新实例( title)构造一个新的、最初不可见的、具有指定标题的 Frame 对象 1、 Frame类的常用方法如表6.2所示:表6.2方法主要功能public void setBounds(int x,int y,int width,int height)设置窗体的位置和大小。由 x 和 y 指
4、定窗体左上角的相对于父窗体的位置,由 width 和 height 指定窗体的大小public void setSize(int width,int height)设置窗体的大小public void setLocation(int x,int y)设置窗体的位置public void setTitle(title)设置窗体的标题public void setBackground(c)设置窗体的背景颜色public void setResizable(boolean resizable)设置此窗体是否可由用户调整大小,resizable - 如果此窗体是可调整大小的,则为 true;否则为 f
5、alsepublic void setVisible(boolean b)根据参数 b 的值显示或隐藏此窗体【例6-1】:通过案例来掌握Frame的使用:基本窗口的显示import java.awt.Color;import java.awt.Frame;public class Demo6_01 public static void main( String args) Frame f = new Frame(My First TestFrame);f.setLocation(300, 300);f.setSize( 170,100);f.setBackground(Color.blue);
6、f.setResizable(false);f.setVisible( true);程序运行的结果:该窗体左上角的位置离它的父窗体左边、上边的坐标点是(300,300)。【例6-2】:通过案例来掌握Frame的使用:显示多个不同背景颜色的窗体。import java.awt.Color;import java.awt.Frame;class MultiFrame extends Framestatic int id = 0;MultiFrame(int x,int y,int w,int h,Color color)super(MultiFrame + (+id); setBackground
7、(color); setLayout(null); setBounds(x,y,w,h); setVisible(true); public class Demo6_02 public static void main(String args) MultiFrame frame1 =new MultiFrame(100,100,200,200,Color.MAGENTA);MultiFrame frame2=new MultiFrame(300,100,200,200,Color.GREEN);MultiFrame frame3 =new MultiFrame(100,300,200,200,
8、Color.YELLOW);MultiFrame frame4 =new MultiFrame(300,300,200,200,Color.BLUE); 程序运行的结果:Panel类Panel类是Container的子类,Panel对象可以看成可以容纳Component的空间。1、Panel类的常用构造方法如表6.3所示:表6.32、Panel类的常用方法(从父类继承过来的方法)如表6.4所示:表6.4构造方法主要功能()使用默认的布局管理器创建新面板( layout)创建具有指定布局管理器的新面板方法主要功能public void setBounds(int x,int y,int widt
9、h,int height)设置Panel的位置和大小。由 x 和 y 指定窗体左上角的相对于父窗体的位置,由 width 和 height 指定窗体的大小public void setSize(int width,int height)设置Panel的大小public void setLocation(int x,int y)设置Panel的位置public void setBackground(c)设置Panel的背景颜色public void setLayout(mgr)设置Panel的布局管理器【例6-3】:通过案例来掌握Panel的基础用法。import java.awt.Color;
10、import java.awt.Frame;import java.awt.Panel;public class Demo6_03 public static void main(String args) Frame f =new Frame(Java Frame with Panel); Panel p =new Panel(null);f.setLayout(null);f.setBounds(300,300,500,500); f.setBackground(new Color(0,0,102);p.setBounds(50,50,400,400); p.setBackground(ne
11、w Color(204,204,255); f.add(p);f.setVisible(true); 程序运行的结果:【例6-4】:通过案例来掌握Panel的使用:显示多个不同背景颜色的Panel。import java.awt.Color;import java.awt.Frame;import java.awt.Panel;class MultiPanel extends Frame private Panel p1,p2,p3,p4; MultiPanel(String s,int x,int y,int w,int h) super(s); setLayout(null); p1 =
12、new Panel(null); p2 = new Panel(null); p3 = new Panel(null); p4 = new Panel(null); p1.setBounds(0,0,w/2,h/2); p2.setBounds(0,h/2,w/2,h/2); p3.setBounds(w/2,0,w/2,h/2); p4.setBounds(w/2,h/2,w/2,h/2); p1.setBackground(Color.BLACK); p2.setBackground(Color.BLUE); p3.setBackground(Color.YELLOW); p4.setBa
13、ckground(Color.RED); add(p1);add(p2);add(p3);add(p4); setBounds(x,y,w,h); setVisible(true); public class Demo6_04 public static void main(String args) new MultiPanel(FrameWithMultiPanel,200,200,300,200); 程序运行的结果:【例6-5】:通过案例来掌握Frame和Panel的使用:Panel显示在Frame中间且占Frame大小的一半。import java.awt.Color;import ja
14、va.awt.Frame;import java.awt.Panel;class FrameWithPanel extends Frame private Panel p; FrameWithPanel(int x,int y,int w,int h,Color c) super(FrameWithPanel); setLayout(null); setBounds(x,y,w,h); setBackground(c); p = new Panel(null); p.setBounds(w/4,h/4,w/2,h/2); p.setBackground(Color.RED); add(p);
15、setVisible(true); public class Demo6_05 public static void main(String args) new FrameWithPanel(200,200,300,200,Color.BLUE);程序运行结果:布局设计Container可以存放组件,组件的排列方式一般情况下有两种,一种是人工排列,一种是利用Java提供的布局管理器对这些组件进行排列,布局管理器直接设置这些组件的位置、大小和排列顺序,不同的布局管理器采用不同的算法和策略。Java提供的布局管理器主要有5中:FlowLayout、BorderLayout、GridLayout、C
16、ardLayout、GridBagLayout布局。 FlowLayout流布局,是Panel、Applet的默认布局,该布局对组件从上到下,从左到右进行布置,一行排满后换行。不改变组件的大小,按组件的原有尺寸显示组件,可设置不同的组件的间距、行距以及对齐方式。FlowLayout默认的对齐方式是居中对齐。FlowLayout的构造方法如表6.5所示:表6.5FlowLayout布局构造方法主要功能()构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位(int align)构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5
17、个单位(int align, int hgap, int vgap)创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙【例6-6】:通过案例来掌握FlowLayout布局管理器的使用:import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;public class Demo6_06 public static void main(String args) Frame f = new Frame(Flow Layout); Button Open = new Button(Open); B
18、utton Continue = new Button(Continue); Button Close = new Button(Close); Button Exit = new Button(Exit); f.setLayout(new FlowLayout(FlowLayout.LEFT); f.add(Open); f.add(Continue); f.add(Close); f.add(Exit); f.setSize(100,100); f.setVisible(true); 程序运行的结果:如果改变Frame的大小,Frame中的组件的布局也会随之改变BorderLayout是W
19、indow类及其子类的默认布局管理器,它将容器分为5个部分,分别命名为EAST、WEST、SOUTH、NORTH和CENTER。每个部分只能放一个组件,如果希望在某个部分放置多个组件,可以先放一个容器对象,然后在容器里面放置多个组件和容器。BorderLayout类提供了的构造方法如表6.6所示:表6.61、如不指定组件的加入部位,则默认加入到CENTER区,每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖。2、BorderLayout型布局容器尺寸缩放原则:北、南两个区域在水平方向缩放。东、西两个区域在垂直方向缩放。中部区域可在两个方法上都缩放。BorderLayout布局构造方法
20、主要功能()构造一个组件之间没有间距的新边框布局。(int hgap, int vgap)构造一个具有指定组件间距的边框布局。【例6-7】:通过案例来掌握BorderLayout布局管理器的使用:import java.awt.BorderLayout;import java.awt.Button;import java.awt.Frame;public class Demo6_07 public static void main(String args) Frame borderLayoutFrame;borderLayoutFrame = new Frame(BorderLayout);B
21、utton EAST = new Button(EAST);Button SOUTH = new Button(SOUTH);Button WEST = new Button(WEST);Button NORTH = new Button(NORTH);Button CENTER = new Button(CENTER);borderLayoutFrame.add(EAST, BorderLayout.EAST);borderLayoutFrame.add(SOUTH, BorderLayout.SOUTH);borderLayoutFrame.add(WEST, BorderLayout.W
22、EST);borderLayoutFrame.add(NORTH, BorderLayout.NORTH);borderLayoutFrame.add(CENTER, BorderLayout.CENTER);borderLayoutFrame.setSize(200,200);borderLayoutFrame.setVisible(true);程序运行的结果:GridLayout布局GridLayout布局管理器是将空间划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,先从左到右填满一行后换行,再从上到下。GridLayout类的构造方法如表5-2所示:表6.7构造方
23、法主要功能()创建具有默认值的网格布局,即每个组件占据一行一列。(int rows, int cols)创建具有指定行数和列数的网格布局。(int rows, int cols, int hgap, int vgap)创建具有指定行数和列数的网格布局。【例6-8】:通过案例来掌握GridLayout布局管理器的使用:import java.awt.*;public class Demo6_08 public static void main(String args) Frame frame = new Frame(GridLayout); Button btn1 = new Button(bt
24、n1); Button btn2 = new Button(btn2); Button btn3 = new Button(btn3); Button btn4 = new Button(btn4); Button btn5 = new Button(btn5); Button btn6 = new Button(btn6); frame.setLayout (new GridLayout(2,3); frame.add(btn1); frame.add(btn2); frame.add(btn3); frame.add(btn4); frame.add(btn5); frame.add(bt
25、n6); frame.pack(); frame.setSize(300,150); frame.setVisible(true); 程序运行的结果:CardLayout布局CardLayout布局CardLayout类的常用方法:表6.8方法主要功能public CardLayout()创建一个间距大小为0的新卡片布局public CardLayout(int h,int v)创建一个具有指定水平间距和垂直间距的新卡片布局。水平间距置于左右边缘。垂直间距置于上下边缘public void first(Container p)翻转到容器的第一张卡片public void last(Contai
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 图形 用户界面 教学 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内