高级语程序设计(Java)

上传人:宝路 文档编号:48160359 上传时间:2018-07-11 格式:PPT 页数:106 大小:697.57KB
返回 下载 相关 举报
高级语程序设计(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来操控,Peers对程序开 发者是隐而不见的,各平

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

3、l 对底层平台的依赖更少 ,和平台有关的bug也就 更少l 给不同平台上的用户一 致的感觉l swing组件大部分是轻 量组件,没有对等组件v Swing并没有完全代替AWT高级语言程序设计(Java) http:/JComponent类的部分子类以及JFrame类和JDialog类ContainerJFrameJDialogWindowFrameDialogJComponentJButtonJTextFieldJTeatAreaJTreeJPanelJTableComponentjavax.swing包中JComponent(轻组件)类是java.awt包中 Container类的一个直接子

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

5、容纳其他容器。高级语言程序设计(Java) http:/l 认识几个方法 u add( ):将组件添加到该容器中。u removeAll() :移掉容器中的全部组件。u remove(Component c) 移掉容器中参数指定的组件。u validate():每当容器添加新的组件或移掉组件时,调用该方法以保证容器中的组件能 正确显示出来。高级语言程序设计(Java) http:/组件的三要素l 内容,如按钮的状态、文本框中的文本l 外观显示,如组件的颜色、大小、可见性l 行为,组建对外部刺激(事件)的反应l 三要素之间的是相互关联的,如按钮组件按钮状态按钮外观按钮观感外部事件按钮行为高级语言

6、程序设计(Java) http:/ Swing的结构l Swing采用MVC(模型 - 视图 - 控制)设计模 式l MVC的基本思想就是将一个GUI组件分成三 个部分: 模型部分 存储内容(完整的) 视图部分 显示内容(完整或不完整的) 控制部分 处理用户事件l 模型必须实现改变和发现内容的方法l 模型是完全不可见的,显示存储在模型中 的数据是视图的工作,控制决定是否把外界 的事件转化成对模型或视图的改变高级语言程序设计(Java) http:/l 例:用户在文本框中进行字符输入按下字符键控制器调用模型中 的“插入字符”命令改变文本框 组件的内容模型通知视 图进行更新视图改变了l 例:用户在

7、文本框中按下了光标键按下光标键控制器通知视 图进行滚动改变文本框 组件的外观对文本不会 有任何影响模型不会有改变高级语言程序设计(Java) http:/l 每个组件都有一个包装类(如JButton),用 来保存模型和视图。l 在javax.swing包中提供了超过250个类,而 其中有接近50个组件类(以J打头)。l javax.swing包中有四个最重要的类u JApplet、JFrame、JDialog和 JComponent。u JFrame、JApplet、JDialog都是重组件l swing包是属于Java基础类(Java Foundation Classes,JFC)的一部分。

8、高级语言程序设计(Java) http:/JFrame窗体l JFrame的特性u JFrame类其子类创建的对象是窗体。u JFrame类或子类创建的对象是重量容器。u 不可以把组件直接添加到JFame窗体中, 应当把组件添加到内容面板中。u 不能为JFame窗体设置布局,应为JFame 窗体的内容面板设置布局。u JFame窗体通过调用getContentPane()方法 得到它的内容面板。高级语言程序设计(Java) http:/JMnuBarContentPaneJFame窗体的基本结构高级语言程序设计(Java) http:/ JFrame类常用方法:l 构造方法u JFrame()

9、 :可以创建一个无标题的窗口。u JFrame(String s) :创建一个标题为s的窗口。l 常用方法l public void setBounds(int a,int b,int width,int height) 窗口调用该方法可以设置出现在屏幕上 时的初始位置是(a,b),即距屏幕左面a个像素、 距屏幕上方b个像素;窗口的宽是width,高是 height。高级语言程序设计(Java) http:/l public void setSize(int width,int height):设置窗口的大小,窗口在屏幕出现是默认位置是 (0,0)。l public void setVisib

10、le(boolean b):设置窗口是可见还是不可见,窗口默认是不可见的。l public void setResizable(boolean b):设置窗口是否可调整大小,窗口默认是可调整大小的 。 高级语言程序设计(Java) http:/l public void setDefaultCloseOperation(int operation) :设置单击窗体右上角的关闭图标后, 程序会做出怎样的处理。其中的参数operation取下列有效值:u DO_NOTHING_ON_CLOSE:什么也不做。u HIDE_ON_CLOSE:隐藏当前窗口。u DISPOSE_ON_CLOSE:隐藏当前

11、窗口,并 释放窗体占有的其它资源。u EXIT_ON_CLOSE:结束窗体所在的应用程 序。高级语言程序设计(Java) http:/菜单组件v Swing菜单由菜单条(JMenuBar)、菜单 (JMenu)和菜单项(JMenuItem)构成。v 菜单条是所有菜单和菜单项的根(容器)。 需要注意的是,只能向窗口添加一个菜单条 JMenuBar 菜单条l JMenuBar是JComponent类的子类,负责创 建菜单条。u JMenuBar menuBar=new JMenuBar();l 将菜单条放置到JFrame窗口中:public void setJMenuBar(JMenuBar me

12、nubar);高级语言程序设计(Java) http:/ JMenu 菜单l JMenu是JComponent类的间接子类,负责创 建菜单。u pulbic JMenu():建立一个没有标题的菜单 。u pulbic JMenu(String s):建立一个指定标题 菜单,标题由参数s确定。l 例如: 创建一个名为“Edit”的菜单,并添加 到菜单条中。JMenu editMenu=new JMenu(“Edit”);menuBar.add(editMenu);高级语言程序设计(Java) http:/l 常用方法u public void add(MenuItem item):向菜单 增加由

13、参数item指定的菜单选项对象。u public void add(String s):向菜单增加指 定的选项。u public JMenuItem getItem(int n):得到指 定索引处的菜单选项。u public int getItemCount():得到菜单选项 数目。高级语言程序设计(Java) http:/ JMenuItem 菜单项l JMenu是JComponent类的间接子类,负责 创建菜单项。u public JMenuItem(String s):构造有标题 的菜单项。u public JMenuItem(String text, Icon icon): 构造有标题

14、和图标的菜单项。u 创建图标对象 Icon icon=new ImageIcon(“图标文件名”);l 菜单项将被放在菜单里。例如: JMenuItem pasteItem=new JMenuItem(“Paste”); editMenu.add(pasteItem);高级语言程序设计(Java) http:/l 主要方法u public void setEnabled(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取值:

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

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

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