d003java_GUI

上传人:xx****x 文档编号:242869206 上传时间:2024-09-10 格式:PPT 页数:49 大小:266.50KB
返回 下载 相关 举报
d003java_GUI_第1页
第1页 / 共49页
d003java_GUI_第2页
第2页 / 共49页
d003java_GUI_第3页
第3页 / 共49页
点击查看更多>>
资源描述
河北师范大学软件学院Java课程组,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第03讲 JavaSwing与GUI,1,本讲教学目标,GUI编程思路,掌握常用的Swing组件,掌握Swing组件的结合,编写简单的Swing程序,2,知识回顾/本讲先行知识,关系型数据库与SQL语句,Java数据库操作,3,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,4,GUI的概念,图形用户界面,Java做GUI程序的现状,Java目前的主要应用领域在企业应用,5,组成,GUI,绘制,布局,BorderLayout,FlowLayout GridLayout,null,控件,绘制的时机,paint( ) 重画,Graphics能力,圆,矩形,线,点,写字,颜色,GridBagLayout CardLayout BoxLayout SpringLayout,初级,高级,树形,表格,选项卡,分割条,外观控制,事件 AWT的事件响应机制,监听器对象,JButton.加图形;JLabel控制颜色、字体,JTextField前景、背景;下拉选择框;单选、多选按钮 ;菜单,6,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,7,AWT,AWT(Abstract Windows Toolkit,抽象窗口工具集)是最原始的Java GUI工具包。,AWT提供了创建基于窗口的图形用户界面的便利工具。它的内容相当丰富,共有60多个类和接口,利用AWT类库,用户可以方便地建立自己的窗口界面,响应并处理交互事件,AWT 是一个非常简单的具有有限 GUI 组件、布局管理器和事件的工具包,AWT是线程安全的,依赖于平台上的组件的能力,不同平台的用户体验有微妙的差异,8,Swing,JavaSwing是JFC (Java Foundation Classes)的一部分,它是试图解决AWT缺点的一个尝试。,Swing是在AWT组件基础上构建的。所有 Swing组件实际上也是AWT的一部分。,Swing使用了AWT的事件模型和支持类,特点:,不依赖于平台的组件模型,外观完全一致,可以选风格,在外观的控制上完全取代了AWT,在事件模型上,AWT仍在沿用,9,JFC,Java Foundation Classes:Java基础类库,JFC主要是由AWT、Swing以及Java2D三者所构成,还包括2D图形API、拖放API等强大功能,若将这些一同搭配运用,则Java语言编写的用户界面程序是一个跨平台的,无论在Windows、Mac OS X或Linux等各种不同的平台上,都保有一致性的图像呈现,10,Applet,Java小应用程序,是一种在Web环境下,运行于客户端的Java程序组件。它也是1990年代中期,Java在诞生后得以一炮走红的功臣之一,Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。,与一般的Java应用程序不同,Applet不是通过main方法来运行的,在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问),11,SWT,SWT即是Standard Widget Toolkit,最初由IBM开发的一套用于Java的图形用户界面(GUI)系统,用来与Swing竞争,著名的开源集成开发环境 Eclipse就是用Java和SWT开发的,AWT+Swing = SWT,12,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,13,AWT组件,14,容器与窗口,Java提供了AWT与Swing两套GUI组件库,AWT:java.awt.*;,Swing:javax.swing.*;,容器Container能够用来存放别的组件。,有两种类型的容器:Window和Panel。,15,组件,Component (所有的可以显示出来的图形界面都是组件),Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextComponent,Container (可以容纳其他Componnt),Panel, Window,Window (窗体,能独立存在的容器),Dialog, Frame,Component一般放在一个容器(Container)里,16,第一个AWT窗体,import java.awt.Button;,import java.awt.FlowLayout;,import java.awt.Frame;,import java.awt.Label;,import java.awt.TextArea;,public class,MainFrame,extends Frame ,private Button b1;,private TextArea ta1;,private Label l1;,public MainFrame() ,init();,private void init() ,b1 = new Button(OK);,ta1 = new TextArea(TextArea);,l1 = new Label(Label);,this.setLayout(new FlowLayout();,this.add(b1);,this.add(ta1);,this.add(l1);,17,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,18,布局管理器,布局方式的意义:当窗体改变大小的时候,组件如何响应变化,Java对界面编程的贡献。传统的窗口程序并未对布局问题进行专门的控制,19,容器类的布局管理,取消布局管理器(手动设置位置),setLayout(null),默认布局管理器,Window,Frame和Dialog的默认布局管理器是BorderLayout,Panel和Applet的默认布局管理器是FlowLayout,20,Java的布局管理器,在Java的GUI中常见的5种布局管理器,FlowLayout:流式布局管理器,BorderLayout:边界布局管理器,GridLayout:网格布局管理器,CardLayout:卡片布局管理器,GridBagLayout:网格包布局管理器,21,练习,FlowLayout,BorderLayout,GridLayout,CardLayout,22,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,23,事件与事件处理,事件:用户的一个操作,引发一个事件,事件处理模式是一个过程,即应用程序使用“监听程序”注册,当发生适当的事件时自动调用这些处理程序。,24,事件处理,每一个可以触发事件的组件被当作事件源.,每一种事件都对应专门的监听者。,监听者用来接收和处理这种事件。,一个事件源可以触发多种事件,如果它注册了某种事件对应的监听者,那么这种事件就会被接收和处理。这种模式被称为 委托模型。,25,委托模型的示意图,当事人对象,受托人对象,委托,事件处理资格接口,事件处理方法,遵守接口,实现方法,事件对象,26,事件处理的软件实现,事件类(XXXEvent),事件监听接口(XXXListener),组件的注册监听接口方法(addXXXListener()方法),27,事件对象,ActionEvent,FocusEvent,AWTEvent,AdjustmentEvent,ComponentEvent,TextEvent,ItemEvent,ContainerEvent,InputEvent,WindowEvent,PaintEvent,KeyEvent,MouseEvent,EventObject,28,事件类,29,事件监听接口,30,组件注册监听接口,组件可以通过addXXXListener方法(XXX表示某种事件)注册监听者。,子类组件继承父类的所有注册监听者的方法。,31,练习,1.用内部类实现监听接口,参看EventTester1.java,2.将容器类实现监听接口,参看EventTester2.java,3.定义专门的外部类实现监听接口,参看EventTester3.java,4.采用事件适配器,参看EventTester4.java,5.一个组件注册多个监听者,参看EventTester5.java,32,本讲内容,GUI基本概念,Swing与AWT编程,组件,布局管理器,事件处理,常用Swing组件,33,Swing组件,在,java.awt,包中,提供了各种具体的组件,如窗体Frame、面板Panel、按钮Button、文本框TextField和文本区域TextArea等。AWT组件的优点是简单、稳定,兼容于任何一个JDK版本,缺点是依赖于本地操作系统的GUI,缺乏平台独立性。,为了使用Java创建的图形界面也能够跨平台,即在不同操作系统中保持相同的外观,从JDK1.2版本开始引入了Swing组件,这些Swing组件位于,javax.swing,包中,成为JDK基础类库的一部分。,Swing组件是用纯Java语言编写而成的,不依赖于本地操作系统的GUI,,Swing组件可以跨平台运行,。独立于本地平台的Swing组件被称为轻量级组件,而依赖于本地平台的AWT组件被称为重量级组件。,34,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,35,JComponent,多数,Swing,组件的父类为,javax.swing.JComponent,36,JFrame(一),是Swing界面的最顶层元素(顶层容器),是界面中的主窗口,或母窗口(没有父容器),JFrame,与,Frame,的最大区别在于前者不能直接通过,add(),方法加入组件,也不能直接通过,setLayout(),方法设置布局。,/以下代码,非法,JFrame jFrame=new JFrame(Hello);,jFrame.setLayout(new GridLayout(2, 1);,jFrame.add(jLabel) ;,jFrame.add(jButton);,37,JFrame (二),每个,JFrame,都有一个与之关联的内容面板(,contentPane,),只能针对这个,contentPane,设置布局,以及加入组件:,JFrame jFrame=new JFrame(Hello);,/ 获得与JFrame关联的contentPane,,/ contentPane默认的布局管理器为BorderLayout,Container contentPane =jFrame.getContentPane();,contentPane.setLayout(new GridLayout(2, 1);,contentPane.add(jLabel) ;,contentPane.add(jButton);,38,JFrame(三),JFrame的setDefaultCloseOperation(int operation)方法用来决定如何响应用户关闭窗体的操作,参数operation有以下可选值:,JFrame.DO_NOTHING_ON_CLOSE:什么也不做。,JFrame.HIDE_ON_CLOSE :隐藏窗体,这是JFrame的默认选项。,JFrame.EXIT_ON_CLOSE :结束程序。,frame.addWindowListener(new MyWindowListener();,class MyWindowListener extends WindowAdapter,public void windowClosing(WindowEvent evt),System.exit(0);,39,SimpleSwingDemo.java,JButton,JLabel,40,JFrame的复杂结构,41,JFrame的初级用法,.,getContentPane,(),获得内容面板,然后在其上添加组件,不要组件直接加到,JFrame,对象上。,ContentPane,好比热水瓶的内胆,ContentPane,的默认布局方式是:,BorderLayout,42,JPanel,经常作为中间容器,为可见的组件分组,控制它们的布局关系和显示效果。,JPanel,一般不可见,只是专门作为构造组间间关系的过渡容器,43,常用布局方式,Null,无布局方式,或自由布局,指定组的绝对位置和大小,BorderLayout,边界布局方式。东西南北中。,FlowLayout,象流水一样,塞满第一行,塞第二行,GridLayout,网格布局。分割为等大小的格子,44,在面板上加入组件,最有用的组件:,JLabel 可以设字体,颜色,JTextField 可以接受用户输入,JButton 可以响应用户的点击,JComboBox 可以下拉列表供选择,JCheckBox 提供多选按钮,JRadioButton 提供单选按钮,每种组件的具体用法参见例程,45,直接绘制,覆盖组件的paint()方法,paint()方法在组件需要刷新的时候被调用。并准备好了用于绘制的工具:Graphics 对象。,Graphics类,提供了丰富的API,以支持复杂的绘制。常用的有:画线,写串,画方,画圆,46,小结,GUI编程,Swing组件,布局,事件处理,47,实验,完成“中华诗词”程序,48,本讲结束,谢谢大家,49,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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