西南科技大学网络教育系列课程高级语程序设计(Java)

上传人:xian****812 文档编号:324058742 上传时间:2022-07-12 格式:PPT 页数:106 大小:682.50KB
返回 下载 相关 举报
西南科技大学网络教育系列课程高级语程序设计(Java)_第1页
第1页 / 共106页
西南科技大学网络教育系列课程高级语程序设计(Java)_第2页
第2页 / 共106页
西南科技大学网络教育系列课程高级语程序设计(Java)_第3页
第3页 / 共106页
西南科技大学网络教育系列课程高级语程序设计(Java)_第4页
第4页 / 共106页
西南科技大学网络教育系列课程高级语程序设计(Java)_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《西南科技大学网络教育系列课程高级语程序设计(Java)》由会员分享,可在线阅读,更多相关《西南科技大学网络教育系列课程高级语程序设计(Java)(106页珍藏版)》请在金锄头文库上搜索。

1、西南科技大学网络教育系列课程西南科技大学网络教育系列课程高级语程序设计高级语程序设计(Java)第十章基于Swing的图形用户界面设计高级语言程序设计高级语言程序设计(Java)http:/AWT组件与SWING组件概述v Java在初期借助一种窗口开发类库,叫作AWT(Abstract Windows Toolkit,抽象窗口工具箱)来达到在图形接口上平台独立性。l AWT处理用户界面元素的方法u 把用户界面元素的创建和行为委托给目标平台(Windows、Macintosh、Linux等)上的本地GUI工具(Peers,对等组件)进行处理。u Peers是本地GUI组件,由AWT来操控,Pe

2、ers对程序开发者是隐而不见的,各平台所产生的peers与各平台有关。Java程序Java AWT本地窗口系统Peers显示高级语言程序设计高级语言程序设计(Java)http:/重量组件和轻量组件l 与本地对等组件相关联的组件(AWT组件)就被称为重量组件。l 不依赖本地对等组件的组件(Swing组件)就被称为轻量组件。l 重量组件具有平台不一致性。l 轻量组件在重量容器的窗口中绘制,背景可以是透明的。高级语言程序设计高级语言程序设计(Java)http:/AWT与SwingAWTl 粗糙、不美观l 平台不一致,“一次编写,到处调试”l 运行效率较低,不适合复杂界面的程序l 开发速度较快Sw

3、ingl 更丰富、更方便的用户界面元素集合l 对底层平台的依赖更少,和平台有关的bug也就更少l 给不同平台上的用户一致的感觉l swing组件大部分是轻量组件,没有对等组件v Swing并没有完全代替AWT高级语言程序设计高级语言程序设计(Java)http:/JComponentJComponent类的部分子类以及类的部分子类以及JFrameJFrame类和类和JDialogJDialog类类Container JFrameJDialogWindowFrameDialogJComponent JButton JTextField JTeatArea JTree JPanel JTableC

4、omponentjavax.swing包中JComponent(轻组件)类是java.awt包中Container类的一个直接子类、Componenet类的一个间接子类。javax.swing包中的JFame类和JDialog类分别是java.awt包中Frame类和Dialog类的直接子类、Window类的间接子类。高级语言程序设计高级语言程序设计(Java)http:/两个基本概念l 组件(component):Java把由Component类的子类或间接子类创建的对象称为一个组件,是图形用户界面中的可见部分,如按钮、标签。l 容器(container):Java把由Container的子

5、类或间接子类创建的对象称为一个容器,是图形用户界面中容纳其它组件的部分,如窗体。u 一个容器中可容纳一个或多个组件,也可容纳其他容器。高级语言程序设计高级语言程序设计(Java)http:/l 认识几个方法 u add():将组件添加到该容器中。u removeAll():移掉容器中的全部组件。u remove(Component c)移掉容器中参数指定的组件。u validate():每当容器添加新的组件或移掉组件时,调用该方法以保证容器中的组件能正确显示出来。高级语言程序设计高级语言程序设计(Java)http:/组件的三要素l 内容,如按钮的状态、文本框中的文本l 外观显示,如组件的颜色

6、、大小、可见性l 行为,组建对外部刺激(事件)的反应l 三要素之间的是相互关联的,如按钮组件按钮状态按钮外观按钮观感外部事件按钮行为高级语言程序设计高级语言程序设计(Java)http:/Swing的结构l Swing采用MVC(模型-视图-控制)设计模式l MVC的基本思想就是将一个GUI组件分成三个部分:模型部分 存储内容(完整的)视图部分 显示内容(完整或不完整的)控制部分 处理用户事件l 模型必须实现改变和发现内容的方法l 模型是完全不可见的,显示存储在模型中的数据是视图的工作,控制决定是否把外界的事件转化成对模型或视图的改变高级语言程序设计高级语言程序设计(Java)http:/l

7、例:用户在文本框中进行字符输入按下字符键控制器调用模型中的“插入字符”命令改变文本框组件的内容模型通知视图进行更新视图改变了l 例:用户在文本框中按下了光标键按下光标键控制器通知视图进行滚动改变文本框组件的外观对文本不会有任何影响模型不会有改变高级语言程序设计高级语言程序设计(Java)http:/l 每个组件都有一个包装类(如JButton),用来保存模型和视图。l 在javax.swing包中提供了超过250个类,而其中有接近50个组件类(以J打头)。l javax.swing包中有四个最重要的类u JApplet、JFrame、JDialog和JComponent。u JFrame、JA

8、pplet、JDialog都是重组件l swing包是属于Java基础类(Java Foundation Classes,JFC)的一部分。高级语言程序设计高级语言程序设计(Java)http:/JFrame窗体l JFrame的特性u JFrame类其子类创建的对象是窗体。u JFrame类或子类创建的对象是重量容器。u 不可以把组件直接添加到JFame窗体中,应当把组件添加到内容面板中。u 不能为JFame窗体设置布局,应为JFame窗体的内容面板设置布局。u JFame窗体通过调用getContentPane()方法得到它的内容面板。高级语言程序设计高级语言程序设计(Java)http:

9、/JMnuBar ContentPane JFame JFame窗体的基本结构窗体的基本结构高级语言程序设计高级语言程序设计(Java)http:/JFrame类常用方法:l 构造方法u JFrame():可以创建一个无标题的窗口。u JFrame(String s):创建一个标题为s的窗口。l 常用方法l public void setBounds(int a,int b,int width,int height)窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height。高级语言程序设计高级语言程序设计(Ja

10、va)http:/l public void setSize(int width,int height):设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。l public void setVisible(boolean b):设置窗口是可见还是不可见,窗口默认是不可见的。l public void setResizable(boolean b):设置窗口是否可调整大小,窗口默认是可调整大小的。高级语言程序设计高级语言程序设计(Java)http:/l public void setDefaultCloseOperation(int operation):设置单击窗体右上角的关闭图标后,程

11、序会做出怎样的处理。其中的参数operation取下列有效值:u DO_NOTHING_ON_CLOSE:什么也不做。u HIDE_ON_CLOSE:隐藏当前窗口。u DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体占有的其它资源。u EXIT_ON_CLOSE:结束窗体所在的应用程序。高级语言程序设计高级语言程序设计(Java)http:/菜单组件v Swing菜单由菜单条(JMenuBar)、菜单(JMenu)和菜单项(JMenuItem)构成。v 菜单条是所有菜单和菜单项的根(容器)。需要注意的是,只能向窗口添加一个菜单条 JMenuBar 菜单条l JMenuBar是JCom

12、ponent类的子类,负责创建菜单条。u JMenuBar menuBar=new JMenuBar();l 将菜单条放置到JFrame窗口中:public void setJMenuBar(JMenuBar menubar);高级语言程序设计高级语言程序设计(Java)http:/JMenu 菜单l JMenu是JComponent类的间接子类,负责创建菜单。u pulbic JMenu():建立一个没有标题的菜单。u pulbic JMenu(String s):建立一个指定标题菜单,标题由参数s确定。l 例如:创建一个名为“Edit”的菜单,并添加到菜单条中。JMenu editMenu

13、=new JMenu(“Edit”);menuBar.add(editMenu);高级语言程序设计高级语言程序设计(Java)http:/l 常用方法u public void add(MenuItem item):向菜单增加由参数item指定的菜单选项对象。u public void add(String s):向菜单增加指定的选项。u public JMenuItem getItem(int n):得到指定索引处的菜单选项。u public int getItemCount():得到菜单选项数目。高级语言程序设计高级语言程序设计(Java)http:/JMenuItem 菜单项l JMen

14、u是JComponent类的间接子类,负责创建菜单项。u public JMenuItem(String s):构造有标题的菜单项。u public JMenuItem(String text,Icon icon):构造有标题和图标的菜单项。u 创建图标对象 Icon icon=new ImageIcon(“图标文件名”);l 菜单项将被放在菜单里。例如:JMenuItem pasteItem=new JMenuItem(“Paste”);editMenu.add(pasteItem);高级语言程序设计高级语言程序设计(Java)http:/l 主要方法u public void setEna

15、bled(boolean b):设置当前菜单项是否可被选择 u public String getLabel():得到菜单选项的名字。u public void setAccelerator(KeyStroke keystroke):为菜单项设置快捷键。public static KeyStroke getKeyStroke(int keyCode,int modifiers):返回KeyStroke对象。keyCode取值范围:KeyEvent.VK_A KeyEvent.VK_Z modifiers取值:InputEvent.ALT_MASKInputEvent.CTRL_MASKInpu

16、tEvent.SHIFT_MASK高级语言程序设计高级语言程序设计(Java)http:/嵌入JMenu子菜单l 菜单项本身还可以是一个菜单,称这样的菜单项为子菜单。JMenu editMenu=new JMenu(“Edit”);JMenu optionsMenu=new JMenu(“Options”);editMenu.add(optionsMenu);高级语言程序设计高级语言程序设计(Java)http:/作用l 指定各个视图组件在窗口中的分布位置,实现动态布局。l 有助于创建复合式的复杂界面,一个复合式界面由一些简单的基本界面组成。优点l 可重用性:基本界面可以被重用,组合成各种不同的复合式界面。l 可扩展性:可以方便的扩展基本界面,从而创建更复杂的界面。l 可维护性:当复合式界面中的局部区域发生变化时,不会影响其它区域。布局设计高级语言程序设计高级语言程序设计(Java)http:/使用布局管理器来实现布局设计l 布局管理器是基于AWT的 l 布局管理器的类型u 流布局管理器:FlowLayoutu 边界布局管理器:BoderLayoutu 卡片式布局管理器:CardLay

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

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

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