17JavaGUI程序设计一教学提纲

上传人:yulij****0329 文档编号:141161962 上传时间:2020-08-04 格式:PPT 页数:27 大小:288KB
返回 下载 相关 举报
17JavaGUI程序设计一教学提纲_第1页
第1页 / 共27页
17JavaGUI程序设计一教学提纲_第2页
第2页 / 共27页
17JavaGUI程序设计一教学提纲_第3页
第3页 / 共27页
17JavaGUI程序设计一教学提纲_第4页
第4页 / 共27页
17JavaGUI程序设计一教学提纲_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《17JavaGUI程序设计一教学提纲》由会员分享,可在线阅读,更多相关《17JavaGUI程序设计一教学提纲(27页珍藏版)》请在金锄头文库上搜索。

1、Java GUI程序设计,Java GUI编程介绍 两种主要的容器:Frame/Panel Awt中的布局管理(上) Awt中的布局管理(下) 在awt中绘图,AWT (Abstract Window Tools),GUI(Graphics User Interface):图形用户界面 AWT (Abstract Window Tools):抽象窗口工具,java.awt包,在这个包中,提供了基本的java程序GUI设计工具: Component/MenuComponent Container LayoutManager,Object,Component,TextField,Container

2、,Others,Button,Container层次关系图,Container,Panel,Applet,Window,Frame,ScrollPane,Dialog,Container常用方法,add() setLocation() setSize() setBoundes() setVisible() pack(),组件定制,组件的大小和位置由布局管理器(LayoutManager)决定。 不使用布局管理器则可以定制组件的大小和位置,但必须在容器中使用组件的setLocation(), setSize(), setBounds()方法确定大小位置,Frame类,是Window类的子类 有标

3、题,可通过拖拉改变大小 初始化时为不可见,可用setVisible(true)使其显示出来 使用BorderLayout作为其缺省布局管理器 使用setLayout方法改变布局管理器,Frame类例子(示例11-1),import java.awt.*; public class MyFrame public static void main(String args) Frame f=new Frame(Hello,My Frame!); f.setSize(200,200); f.show(); ,Frame例子(con.),Panel,为放置组件提供空间 允许使用自己的布局管理器 不能单独

4、存在,必须放置到其他容器中,Panel例子(示例11-2),import java.awt.*; public class MyPanel public static void main(String args) /define a label Label l=new Label(This Label); /define a panel Panel p=new Panel(); /set the panels size p.setSize(200,100); /add the label to the panel p.add(l); /define a frame Frame f=new Fr

5、ame(Hello,my panel!); f.setSize(200,200); /add the panel p to the Frame f f.add(p); /pack the componets together f.pack(); f.show(); ,Container的布局管理器,为了使我们生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。,Container的布局管理器(con.),Awt中的布局管理器有: FlowLayout BorderLayout GridLayout Ca

6、rdLayout GridBagLayout,FlowLayout,GUI Component从左到右按顺序配置在Container中,若到达右边界,则会折回到下一行中 FlowLayout是Panel和Applet的默认管理器 FlowLayout()/ FlowLayout(int align)/ FlowLayout(int align,int hgap,int vgap) FlowLayout.LEFT/ FlowLayout.CENTER/ FlowLayout.RIGHT 默认为靠中对齐 使用组件的理想尺寸,FlowLayout 例子(示例11-3),import java.awt

7、.*; public class MyFlowLayout extends Frame private Button leftButton,centerButton,rightButton; public MyFlowLayout() super(My FlowLayout Test); /定义按钮 leftButton=new Button(左); centerButton=new Button(中); rightButton=new Button(右); /居中对齐 setLayout(new FlowLayout(FlowLayout.CENTER); /加上按钮 add(leftBut

8、ton); add(centerButton); add(rightButton); /设置大小 setSize(200,100); /显示 show(); public static void main(String args) MyFlowLayout app=new MyFlowLayout(); ,BorderLayout,BorderLayout将Container分为EAST、SOUTH、WEST、NORTH、CENTER五个区域,Component可以放置在这五个区域的任何一个 BorderLayout是Frame、Dialog的默认管理器 如果在一个区域中放入多个Compone

9、nt,后放入的Component会把前面的覆盖 BorderLayout()/ BorderLayout(int hgap,int vgap) BorderLayout.EAST、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.SOUTH、BorderLayout.CENTER,BorderLayout(con.),BorderLayout布局格式:当改变容器大小时 North, South和Center区域水平调整 East, West和Center区域垂直调整,North,South,West,East,Center,BorderLayo

10、ut例子(示例11-4),import java.awt.*; public class MyBorderLayout extends Frame private String name=东,南,西,北,中; private Button button=new Buttonname.length; public MyBorderLayout() super(My BorderLayout Test); for (int i=0;iname.length;i+) buttoni=new Button(namei); /设置布局BorderLayout,水平和垂直间隙均为5 setLayout(n

11、ew BorderLayout(5,5); /加上按钮 add(button0,BorderLayout.EAST); add(button1,BorderLayout.SOUTH); add(button2,BorderLayout.WEST); add(button3,BorderLayout.NORTH); add(button4,BorderLayout.CENTER); setSize(300,200); show(); public static void main(String args) MyBorderLayout app=new MyBorderLayout(); ,Gri

12、dLayout,GridLayout将Component配置在纵横格线分割的格子中,从左到右,从上到下; 构造器:GridLayout()/ GridLayout(int rows,int cols)/ GridLayout(int rows,int cols,int hgap,int vgap),GridLayout例子(示例11-5),import java.awt.*; public class MyGridLayout extends Frame private String name=0,1,2,3,4,5,6,7,8,9,+,-,*,/,.; private Button butt

13、on=new Buttonname.length; public MyGridLayout() super(My GridLayou Test:Caculator); /三行五列的布局,水平和垂直间隙均为4 setLayout(new GridLayout(3,5,4,4); for (int i=0;iname.length;i+) buttoni=new Button(namei); this.add(buttoni); setSize(250,150); show(); public static void main(String args) MyGridLayout app=new M

14、yGridLayout(); ,CardLayout,将加入到Container中的Component看成一叠卡片,只有最上面的那个Componet才可见 构造器:CardLayout()/ CardLayout(int hgap,int vgap) 控制组件可见的方法:first(Container target) / last(Container target) /previous(Container target) /next(Container target) /show(Container target,String name),CardLayout例子(示例11-6), cardL

15、ayout1=new CardLayout(); cp=new Panel(); cp.setLayout(cardLayout1); for(int i=0;iname.length;i+) /定义卡片(Label) cardi=new Label(namei); /把这些卡片加到cp这个Panel中 cp.add(namei,cardi); ,CardLayout例子(con.),在 awt中画图,通常,创建Canvas类或Panel的子类,并覆盖paint方法 每当组件出现时调用paint方法 每个组件都有一个Graphics对象 Graphics类实现了很多绘图方法,AWT中的坐标,(0,0),(x,y),x轴,y轴,在awt中画图例子(示例11-7),class DrawingPanel extends Panel public void paint(Graphics g) /绘制矩形 g.drawRect(50,50,70,70); /绘制圆角矩形 g.drawRoundRect(110,10,50,30,20,10); ,

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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