Java的图形用户界面设计.ppt
《Java的图形用户界面设计.ppt》由会员分享,可在线阅读,更多相关《Java的图形用户界面设计.ppt(59页珍藏版)》请在三一办公上搜索。
1、第7章 Java的图形用户界面设计,Java的图形用户界面(GUI)由组件(component)容器(container)构成。,组件和容器类间的基本继承关系,组件和容器类间的基本继承关系如下图:,创建图形用户界面,容器和组件,Java抽象窗口工具集AWT(abstract window toolkit)的核心内容是组件和容器。组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。,容器和组件,通过add()方法可将组件加入容器并显示出来。容器是图形用户界面中容纳其他组件的部分,一个容器中可容纳一个或多个组件,甚至还可以容纳其他容器。,组件的定位,容器中组件的位置
2、由容器的布局管理器(layout manager)决定。每个容器中都包含一个指向LayoutManager实例的引用,称为该容器的布局管理器。,组件的大小,由于组件的大小由容器的布局管理器决定,通常情况下无需再在程序中对组件的大小进行设定。如果自己设定了组件的大小或位置,布局管理器通常会将其忽略。,组件的大小,可以使用setLayout()方法使容器的布局管理器失效:setLayout(null);用setLocation()方法、setSize()方法或setBound()方法对组件的大小和位置进行设定。,框架,框架(Frame)类是Window类的子类,它是一种带标题框并且可以改变大小的窗
3、口。,创建一个简单的框架,使用Frame类的构造方法Frame(String)可以创建Frame的实例,该实例是一个不可见的对象,它带有标题框,构造方法中的String型参数指定了标题内容。,创建一个简单的框架,使用从Component类继承过来的setSize()方法可以改变Frame实例的大小。必须调用setVisible()方法和setSize()方法才能使Frame的实例可见。,创建一个简单的框架,import java.awt.*;public class MyFrame extends Framepublic static void main(String args)MyFrame
4、 fr=new MyFrame(HelloOutThere!);fr.setSize(400,200);fr.setBackground(Color.blue);fr.setVisible(true);public MyFrame(String str)super(str);.,这里调用来自Component类的setSize()方法,面板,面板(Panel)与框架类似,也是一种容器,可以容纳其他GUI组件。面板通过构造方法Panel()进行创建。当一个Panel对象被创建之后,使用Container类的add()方法将它加入到某个Window对象或Frame对象中。,面板示例,import
5、java.awt.*;public class FrameWithPanel extends Frame public FrameWithPanel(String str)super(str);public static void main(String args)FrameWithPanel fr=new FrameWithPanel(Frame with Panel);Panel pan=new Panel();,构造函数,fr.setSize(300,200);fr.setBackground(Color.blue);fr.setLayout(null);pan.setSize(100,
6、100);pan.setBackground(Color.yellow);fr.add(pan);fr.setVisible(true);,布局,Java语言中包含以下几种布局管理器:FlowLayout Panel类和Applet类的默认布局管理器。BorderLayoutWindow类、Dialog类和Frame类的默认布局管理器。GridLayout CardLayout GridBagLayout,一个简单的例子,import java.awt.*;public class ExGui private Frame f;private Button b1;private Button b
7、2;public static void main(String args)ExGui that=new ExGui();that.go();,public void go()f=new Frame(GUI example);f.setLayout(new FlowLayout();b1=new Button(Press me);b2=new Button(Dont press Me);f.add(b1);f.add(b2);f.pack();f.setVisible(true);,说明,1 main()方法main()方法有两个作用。创建了一个ExGui类的实例,在这个实例创建之前,并没有实
8、际可用的f.b1和f.b2数据项。当ExGui实例创建好以后,main()又调用了该实例的go()方法,在这个方法中,程序的实际功能得以实现。,说明,2new Frame(GUI Example)功能是创建Frame类的一个实例。Java中的Frame 是一个顶级(top level)窗口,它带有标题框并且可以改变大小。在刚刚创建时,Frame的大小为0,并且不可见。,说明,3 f.setLayout(new FlowLayout()创建了一个FlowLayout型的布局管理器,调用setLayout()方法将该布局管理器指定给Frame实例。每个Frame都有一个默认的BorderLayou
9、t型布局管理器,它负责安排Frame中组件的布局,本例创建了FlowLayout型布局管理器。,说明,4 new Button(Press Me)这条语句的功能是创建java.Button类的一个实例,该实例是窗口中的标准按钮button,按钮上的标签由构造方法中String型参数Press Me指定。,说明,5 f.add(b1)Frame的实例f接收按钮组件b1,按钮b1的大小和位置便由f的FlowLayout型布局管理器来控制。6 f.pack()框架f设定一个适当的大小,以便能够以“紧缩”的形式包容各个组件。,布局管理器,FlowLayout布局管理器,FlowLayout型布局管理器
10、对容器中组件进行布局的方式是将组件逐个地安放在容器中的一行上,一行放满后就另起一个新行。,FlowLayout布局管理器,FlowLayout 有三种构造方法:public FlowLayout()public FlowLayout(int align)public FlowLayout(int align,int hgap,int vgap),FlowLayout布局管理器,在默认情况下,FlowLayout将组件居中放置在容器的某一行上FlowLayout的构造方法中提供了一个对齐方式的可选项align,FlowLayout布局管理器,align的可取值FlowLayout.LEFT左对齐
11、FlowLayout.RIGHT 右对齐FlowLayout.CENTER 居中如:newFlowLayout(FlowLayout.LEFT)创建了一个使用左对齐方式的FlowLayout的实例。,FlowLayout布局管理器,FlowLayout的构造方法中还有一对可选项hgap和vgap,可以设定组件的水平间距和垂直间距。FlowLayout布局管理器并不强行设定组件的大小,而是允许组件拥有它们自己所希望的尺寸。,FlowLayout布局管理器,示例:setLayout(new FlowLayout(FlowLayout.RIGHT,20,40);setLayout(new FlowL
12、ayout(FlowLayout.LEFT);setLayout(new FlowLayout();,FlowLayout布局管理器,import java.awt.*;public class MyFlow private Frame f;private Button button1,button2,button3;public static void main(String args)MyFlow mflow=new MyFlow();mflow.go();,public void go()f=new Frame(Flow Layout);f.setLayout(new FlowLayou
13、t();button1=new Button(Ok);button2=new Button(Open);button3=new Button(Close);f.add(button1);f.add(button2);f.add(button3);f.setSize(100,100);f.setVisible(true);,BorderLayout布局管理器,BorderLayout是Dialog类和Frame类的默认布局管理器,它提供了一种较为复杂的组件布局管理方案,每个被BorderLayout管理的容器均被划分成五个区域:东(East)、南(South)、西(West)、北(North)、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 图形 用户界面 设计

链接地址:https://www.31ppt.com/p-5575453.html