




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 图形用户界面AWT,10.1 AWT简介 组件 容器 布局管理器 10.2 AWT事件处理模型 事件监听器 事件适配器 10.3 AWT举例,10.1 AWT简介,AWT(Abstract Window Toolkit):是Java程序提供的建立图形用户界面(Graphics User Interface,简称GUI)的工具集,通过GUI可以画线、矩形、圆形等基本图形,并且能创建按钮、标签、列表框等与用户进行交互的组件,使用户方便的建立自己的图形用户界面。AWT主要包括组件、容器、布局管理器、事件处理模型、图形图像工具和数据传送类等组成。,10.1 AWT简介,AWT的组件是重量级的。 AWT包 java.awt java.awt.accessibility java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event,java.awt.im java.awt.image java.awt.peer java.awt.print java.awt.font java.awt.geom,10.1 AWT简介,AWT包主要类的层次关系,10.1 AWT简介,AWT包主要类的层次关系,10.1 AWT简介,组件 Component,MenuComponent Component类方法: getComponentAt(int x,int y), getFont(),getForeground(),getName(), getSize(),repaint(),paint(Graphics g), update(),setVisible(boolean b), setSize(Dimension d),setName(String name),10.1 AWT简介1 组件,Canvas,TextArea,Label,ScrollBar,CheckBox,List,TextField,Button,Choice,10.1 AWT简介1 组件,Netscape Communicator,Menu,Menubar,Button,Label,Text field,10.1 AWT简介1 组件,基本组件 按钮Button: Button(), Button(String label) 标签Label:文本字符串,仅用于显示,所以不生成动作事件。Label(),Label(String),setText(),getText() 复选框和单选按钮Checkbox: Checkbox( String label), Checkbox( String label,boolean state), Checkbox( String label,boolean state,CheckboxGroup) 下拉式列表Choice和列表List: Choice是文本字符串的弹出式菜单, Choice(),add();列表List可允许多选,支持滚动条,List(int,boolean),add() 单行文本组件TextField和多行文本组件TextArea:(setText(),getText(),SetEditable(),10.1 AWT简介1 组件,基本组件 TextField:setEchoChar() TextArea:append(),insert(),replace() 画布canvas:绘图功能,paint(),requestFocus() 滚动条ScrollBar:Scrollbar() ,Scrollbar(int orientation) 组件外观颜色和字体: Java.awt.Color: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, Yellow;Color(int r,int g,int b) Java.awt.Font:setFont() 菜单组件:MenuBar,Menu,MenuItem, CheckboxMenuItem,MenuShortcut,10.1 AWT简介2 容器,容器:是一种可以含有其他组件的组件,AWT中的容器都是从Container抽象类派生而来的. 类型:Window,panel,ScrollPane 常用:Panel,Frame,Applet Panel和Applet:Applet从Panel类继承而来,而 Panel 从Container类继承而来,它不创建自己的窗口,因为它常用于将组件编组放入其它容器(Frame,Applet)中,它缺省的布局管理器为FlowLayout。 Frame:是一个功能齐全的、顶层的、可重定义尺寸的、带有菜单条的窗口。可以指定标题、图标和光标。它缺省的布局管理器为BorderLayout,且生成与窗口一样的事件:WindowOpened,WindowClosing,WindowClosed, Windows:不常使用, 它是一个顶层的窗口,不带边界和菜单条。,10.1 AWT简介3 布局管理,常用布局管理器 FlowLayout:组件从左到右、从上到下,一个挨一个地放在容器中。Panel和 Applet的默认容器。 GridLayout:网格布局管理器。每个网格单元放置一个组件或容器。 BorderLayout:按照东、西、南、北、中安排组件。是Window、Frame、Dialog的默认容器。 CardLayout:卡式布局管理器。 GridBagLayout:复杂的网格布局管理器。,10.1 AWT简介3 布局管理,BorderLayout类 功能:分成五个区 创建: setLayout(new BorderLayout(); 将其他构件加入 add(“ East”, new Button(“东”); add(“South”, new Button(“南”); add(“West”, new Button(“西”); add(“North”, new Button(“北”); add(“Center”, new Button(“中”);,10.1 AWT简介3 布局管理,FlowLayout类 FlowLayout(); FlowLayout(FlowLayout.LEFT);(5像素) FlowLayout(FlowLayout.RIGHT,10,20); GridLayout类 GridLayout mylayout = new GridLayout(3,3) setLayout();,10.1 AWT简介3 布局管理,GridBagLayout类和GridBagConstraints类 功能:借助于GridBagConstraints类,实现更灵活的外观管理 每个构件后都跟随一个GridBagLayout对象实体,来决定构件的外观. 创建 GridBagLayout myLayout=new GridBagLayout(); GridBagConstraints类的约束条件 gridwidth, gridheight, gridx, gridy, weightx, weighty, ipadx, ipady, insets , fill,anchor 设置(P287),10.1 AWT简介3 布局管理,例:(GridBagApplet.html),10.1 AWT简介3 布局管理,public void init() GridBagLayout layout=new GridBagLayout(); setLayout(layout); GridBagConstraints GBC = new GridBagConstraints(); Button button1=new Button(“button1“); Button button2=new Button(“button2“); Button button3=new Button(“button3“); Button button4=new Button(“button4“); Button button5=new Button(“button5“); Button button6=new Button(“button6“); Button button7=new Button(“button7“); Button button8=new Button(“button8“); Button button9=new Button(“button9“);,10.1 AWT简介3 布局管理,GBC.fill=GridBagConstraints.BOTH; (按钮可以在水平和垂直两个方向扩展) layout.setConstraints(button1,GBC); add(button1); GBC.gridwidth=GridBagConstraints.RELATIVE; (BOTH依然起作用, 紧挨着最后一个按钮,) layout.setConstraints(button2,GBC); add(button2); GBC.gridwidth=GridBagConstraints.REMAINDER; (填充剩余部分) layout.setConstraints(button3,GBC); add(button3);,10.1 AWT简介3 布局管理,GBC.gridwidth= GridBagConstraints.REMAINDER; (表示该按钮独占一行) layout.setConstraints(button4,GBC); add(button4);,10.1 AWT简介3 布局管理,GBC.gridwidth=2; (表示该按钮占两个单元) layout.setConstraints(button5,GBC); add(button5); GBC.gridwidth= GridBagConstraints.REMAINDER; layout.setConstraints(button6,GBC); add(button6);,10.1 AWT简介3 布局管理,GBC.gridwidth=1; GBC.gridheight=2; (高度为两个单元) layout.setConstraints(button7,GBC); add(button7);,10.1 AWT简介3 布局管理,GBC.gridwidth= GridBagConstraints.REMAINDER; GBC.gridheight=1; layout.setConstraints(button8,GBC); add(button8); layout.setConstraints (button9,GBC); add(button9);,10.1 AWT简介例,10.1 AWT简介例,import java.awt.*; public class Test Frame f; Button b; TextField tf; public void creat() f = new Frame(“testing“); b= new Button(“press“); f.add(b, “North“);,10.1 AWT简介例,tf= new TextField(); f.add(tf, “South“); f.setSize(200,200); f.setVisible(true); public static void main(String args) Test t = new Test(); t.creat(); ,10.2 AWT事件处理模型,Java1.1:基于事件的授权模型。 事件 事件源 事件处理器 任何类都能接收和管理事件,不管该类是否将Component当作超类。 事件是通过事件监听器(event listeners)来管理的. 源码顶部需加入:import java.awt.event.*,10.2 AWT事件处理模型事件类,事件类 (10类):,java.util.EventObject,java.awt.AWTEvent,ComponentEvent,ItemEvent,TextEvent,ContainerEvent,FocusEvent,InputEvent,PaintEvent,WindowEvent,KeyEvent,MouseEvent,AdjustmentEvent,ActionEvent,10.2 AWT事件处理模型事件监听器,10.2 AWT事件处理模型事件监听器,10.2 AWT事件处理模型事件监听器例1,每类事件对应事件监听器,监听器是接口,所以要在类中实现接口。 import java.awt.*; import java.awt.event.*; public class Test1 implements ActionListener Frame f; Button b; TextField tf; public void creat() f = new Frame(“testing“); b= new Button(“press“); b.addActionListener(this); f.add(b, “North“);,10.2 AWT事件处理模型事件监听器例1,tf= new TextField(); f.add(tf, “South“); f.setSize(200,200); f.setVisible(true); public void actionPerformed(ActionEvent e) tf.setText(“the Button is pressed“); public static void main(String args) Test1 t = new Test1(); t.creat(); ,10.2 AWT事件处理模型事件监听器例2,import java.awt.*; import java.awt.event.*; public class Test3 implements ActionListener,WindowListener Frame f; Button b; TextField tf; public void creat() f = new Frame(“testing“); f.setLayout(new BorderLayout(); f.addWindowListener(this); b= new Button(“press“); b.addActionListener(this); f.add(b, “North“);,10.2 AWT事件处理模型事件监听器例2,tf= new TextField(); f.add(tf, “South“); f.setSize(200,200); f.setVisible(true); public void actionPerformed(ActionEvent e) tf.setText(“the Button is pressed“); public static void main(String args) Test3 t = new Test3(); t.creat(); ,10.2 AWT事件处理模型事件监听器例2,public void windowClosing(WindowEvent e) System.exit(0); public void windowActivated(WindowEvent e); public void windowClosed(WindowEvent e); public void windowDeactivated(WindowEvent e); public void windowDeiconified(WindowEvent e); public void windowIconified (WindowEvent e); public void windowOpened(WindowEvent e); ,10.2 AWT事件处理模型事件适配器,为了简单化,为一些监听器Listener接口提供了适配器Adapter类. ComponentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter WindowAdapter,10.2 事件适配器举例内部类,import java.awt.*; import java.awt.event.*; public class Test4 implements ActionListener Frame f; Button b; TextField tf; public void creat() f = new Frame(“testing“); f.setLayout(new BorderLayout(); f.addWindowListener(new WinClosing(); b= new Button(“press“); b.addActionListener(this); f.add(b, “North“);,10.2 事件适配器举例内部类,tf= new TextField(); f.add(tf, “South“); f.setSize(200,200); f.setVisible(true); public static void main(String args) Test4 t = new Test4(); t.creat(); public void actionPerformed(ActionEvent e) tf.setText(“the Button is pressed“); ,10.2 事件适配器举例内部类,class WinClosing extends WindowAdapter public void windowClosing(WindowEvent e) System.exit(0); ,10.3 AWT举例菜单,import java.awt.*; public class TestMenu private Frame f; private MenuBar mb; private Menu m1,m2,mhelp; private Menu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砂料机安装外包协议合同
- 生产经营纠纷调解协议书
- 项目部租赁泵车合同范本
- 研发产品转化协议书模板
- 烤肉桌椅转让协议书模板
- 机关食堂承包合同协议书
- 物业服务业务协议书范本
- 焊工培训考试协议书模板
- 空压机租赁转让合同范本
- 阳台栏杆改造安全协议书
- 2025护士招聘笔试题目及答案
- 公路养护工考试试题及答案
- 2025年钻头市场分析现状
- 2025年四级中式烹调师(中级)职业技能鉴定参考试题库(含答案)
- 2025-2030全球及中国精制花生油行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025劳动合同范本下载「版」
- 高中家长会 高一下学期期末家长会课件
- 饮料包装设计对销售影响研究-洞察分析
- 医院产房停电应急预案
- 口腔门诊顾客关系管理策略
- 骨痹病护理查房
评论
0/150
提交评论