第07章 Java中的GUI编程

上传人:fgh****35 文档编号:247437166 上传时间:2024-10-18 格式:PPT 页数:25 大小:76.50KB
返回 下载 相关 举报
第07章 Java中的GUI编程_第1页
第1页 / 共25页
第07章 Java中的GUI编程_第2页
第2页 / 共25页
第07章 Java中的GUI编程_第3页
第3页 / 共25页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章,Java,中的,GUI,编程,教授:郭磊,【,本章导读,】,图形用户界面(,GUI,,,Graphical User Interface,)使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发送指令,启动操作,并将系统运行的结果同样以图形方式显示给用户。图形用户界面操作简单,省去了字符界面用户必须记忆各种命令的麻烦,深受广大用户的喜爱和欢迎。所以学习设计和开发图形用户界面,是应用软件开发人员必修的一课。,本章主要介绍,Swing,和,AWT,中基本组件的用法,如何创建简单的用户界面,包括布局管理、用户事件,以及如何创建复杂的用户界面等。,【,本章要点,】,AWT,和,Swing,简介,布局方式,事件处理,常用组件,字体和颜色设置,图形用户界面的概念,图形用户界面是一种方便的人机界面。它通过图形的方法,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机发出命令,启动程序,并将程序的运行结果同样以图形的形式显示给用户。,GUI,支持包,Java,语言在,java.awt,包中提供了大量地进行,GUI,设计所使用的类和接口,包括绘制图形、设置字体和颜色、控制组件、处理事件等内容,,AWT,是,Java,语言进行,GUI,程序设计的基础。,javax.swing包,是,Java,语言提供的第二代,GUI,设计工具包,它以,AWT,为基础,在,AWT,内容的基础上新增或改进了一些,GUI,组件,使得,GUI,程序功能更强大,设计更容易、更方便。,AWT,Abstract Window Toolkit,Java,处理图形用户界面的初始途径。,AWT,库处理图形的方法:把这些元素的创建和行为交给目标平台上的本地,GUI,工具集进行处理。,理论上,“一次编写,随处运行”,。,依赖于平台上的组件的能力,不同平台的用户体验有微妙的差异。,实际上,“一次编写,随处调试”,。,AWT,包中类的继承关系,Objec,t,AWTEvent,Font,FlowLayout,BorderLayout,CardLayout,GridLayout,GridBagLayout,Component,Button,Canvas,Checkbox,Container,Choice,Label,List,TextComponent,Scrollbar,Panel,ScrollPane,Window,Applet,Dialog,Frame,TextArea,TextField,MenuComponent,Graphics,MenuBar,MenuItem,Menu,CheckBoxMenuItem,PopupMenu,ToolKit,JMenuGraphics2D,Swing,Swing,处理图形的方法:采用,自行绘制,的方式来完成对图形组件的显示。,不依赖于平台,外观完全一致。,真正实现了,“一次编写,随处运行”,。,在外观的控制上完全取代了,AWT,。,Swing,没有完全取代,AWT,:,Swing,包中的类都是从,AWT,包中较上层的类继承过来的,仍然沿用,AWT,提供的事件处理机制。,Swing,包中类的继承关系,Object,Component,JFrame,Container,Window,Frame,Dialog,JDialog,JTextField,JComboBox,JLabel,JList,JMenuBar,JOptionPane,JPanel,JScrollBar,AbstractButton,JToggleButton,JMenuItem,JButton,JCheckBox,JRadioButton,JComponent,JMenu,GUI,元素,组件:由,AWT,和,Swing,类所创建的对象。,容器:能容纳其它组件的组件。,这好比:池子里有盆,盆里有碗,碗里有勺。不同的组件,按一定的容纳关系构成了整个界面。,JFrame,顶层容器,是,Swing,界面的最顶层元素,好比:池子。,顶层容器就是界面中的主窗口,或母窗口。它没有父容器。,最基本的,Swing,应用程序,import,javax.swing,.*;,public class T1 extends,JFrame,public static void,main(String,args,),JFrame,a = new,JFrame,(); /,创建窗体对象,a.setTitle(OK,);,/,设置对象属性,a.setSize(400,300);,a.setVisible(true,);,/,通过生成,JFrame,对象,然后在修改它的属性的方式不是很方便。,/,常见的做法是继承,JFrame,类,然后在自己类的构造方法中完成所有,/,界面的初始化工作。,JFrame,的复杂结构,JFrame,的初级用法,getContentPane,(),获得内容面板,然后在其上添加组件。,不要组件直接加到,JFrame,对象上。,ContentPane,好比热水瓶的内胆,在面板上加入组件,最有用的组件:,JLabel,可以设字体,颜色,JTextField,可以接受用户输入,JButton,可以响应用户的点击,JComboBox,可以下拉列表供选择,JCheckBox,提供多选按钮,JRadioButton,提供单选按钮,每种组件的具体用法参见例程,JPanel,经常作为中间容器,为可见的组件分组,控制它们的布局关系和显示效果。,JPanel,一般不可见,只是专门作为构造组间关系的过渡容器。,常用布局方式,BorderLayout,边界布局方式。东西南北中。,FlowLayout,象流水一样,塞满第一行,塞第二行,GridLayout,网格布局。分割为等大小的格子,设置布局方式,容器,.,setLayout(new,FlowLayout,(),设为流布局,默认的布局,每个容器都有自己的默认布局方式,JFrame,默认的是,BorderLayout,JPanel,默认的是,FlowLayout,事件模型,一次事件的处理,涉及三个对象:事件源对象,事件对象,事件处理者对象。,事件模型的好处,事件的“当事人”自己不去处理事件,避免了大量继承的繁冗,处理过程,每种类型的事件都有一个对应的接口。,事件处理者,(,监听器,),通常是一个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接口。,事件源对象把某种类型的事件委托给实现了该种事件处理接口的类的对象。以后,当这个事件源对象上发生了该种特定类型的事件时,就会自动去调用事件处理者,(,监听器,),对象中相应的方法。,委托的花样,一个事件源可以委托多个事件处理者,当事件发生的时候,执行多个动作,多个事件源以委托同一事件处理者,当进入处理方法时,需要判定是哪个事件源的事件,命名的约定,事件名:,XxxEvent,接口名:,XxxListener,监听器向产生事件的事件源注册,那么事件源与事件处理者就建立了联系。需要委托方法,addXxxListener,( ),注册格式:事件源对象,.,addXxxListener,(,监听器对象,),ActionEvent,按钮的点击动作,文本编辑框上的回车动作,菜单的点击动作,ActionListener,接口名,addActionListener,( ),ActionEvent,的方法,getSource,(),取得事件发生的“事件源”对象,getActionCommand,(),取得按钮的标题,取得菜单项的标题,鼠标事件,MouseEvent,鼠标的普通动作,MouseMotionEvent,与鼠标的移动有关的事件,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!