[2017年整理]Java 图形界面设计

上传人:油条 文档编号:48545383 上传时间:2018-07-17 格式:PPT 页数:92 大小:2MB
返回 下载 相关 举报
[2017年整理]Java  图形界面设计_第1页
第1页 / 共92页
[2017年整理]Java  图形界面设计_第2页
第2页 / 共92页
[2017年整理]Java  图形界面设计_第3页
第3页 / 共92页
[2017年整理]Java  图形界面设计_第4页
第4页 / 共92页
[2017年整理]Java  图形界面设计_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《[2017年整理]Java 图形界面设计》由会员分享,可在线阅读,更多相关《[2017年整理]Java 图形界面设计(92页珍藏版)》请在金锄头文库上搜索。

1、第12章图形界面设计1本章主要内容n12.1 图形用户界面设计n12.2 图形用户界面工具包Swingn12.3 创建组件n12.4 布局管理器212.1 图形用户界面设计n图形用户界面(Graphics User Interface,GUI )n用图形的方式,借助菜单。按钮等标准界面元素 和鼠标操作,帮助用户方便地向计算机系统发出 指令、启动操作,并将系统运行的结果同样以图 形方式显示给用户的技术。nJava的GUI程序设计是Java程序设计的基础。312.1 图形用户界面设计nJava提供的两个处理图形用户界面的类库: Java. awt包和javax. swing包 Sun已经提供了一个

2、跨平台 GUI开发工具包java.awt(抽 象窗口工具箱)Sun又开发了一个新的 GUI开发工具包javax.swing 解决了awt中存在的本地化 问题412.1 图形用户界面设计nAWT 和 Swing 是 Java 设计 GUI 用户界面的基础.n与AWT 的重量级组件不同, Swing 中大部分是轻量级组 件。 正是这个原因, Swing 几乎无所不能, 不但有各式各 样先进的组件, 而且更为美观易用.所以一开始使用 AWT 的程序员很快就转向使用 Swing 了。n但是因为 Swing 是架构在 AWT 之上的, 没有 AWT 就没 有 Swing。所以程序员可以根据自己的习惯选择

3、使用 AWT 或者是 Swing。n但是,最好不要二者 混用除开显示风格不同不说,还很 可能造成层次 (Z-Order) 错乱512.2图形用户界面工具包SwingnJava图形用户界面的基本元素包括:n用户界面组件(组件类)n事件处理模块(事件类)n图形和图像工具(图形类、图像类)n布局管理器(布局类)n它们主要都在javax.swing包中,Swing是Java 包的一部分。6712.2.1 Swing组件分类n组件:构成图形用户界面的各种元素。n构建图形用户界面的类可以分成三组:n容器类(container class)n辅助类(helper class)n组件类(component c

4、lass)。812.2.1 Swing组件分类容器类n容器类组件中可以包含其他组件,也可以包含其他容器。n容器又分为两种:顶层容器和非顶层容器。n顶层容器是可以独立的窗口,Swing的顶层容器有 JFrame、JApplet和JDialog等。n非顶层容器,不是独立的窗口,它们必须位于窗口之内, 非顶层容器包括JPanel及JScrollPanel等。912.2.1 Swing组件分类n辅助类和组件类都属于非容器类组件不能包含其他组件的 组件,其种类较多。n辅助类n辅助类是用来描述组件属性的,辅助类通常 包含在java.awt包中,Swing组件不能取代AWT 的全部类,只能替代AWT的GUI

5、组件类,AWT辅 助类保持不变。n组件类n所有Swing GUI组件类(除JFrame、 JApplet和JDialog)都是JComponent类的子类 ,例如,JButton、JTextField、JTextArea、 JComboBox、JList、JRadioButton和JMenu等 。nSwing轻型组件分类参见教材P202 表12.11012.2.1 Swing组件分类n一般独立应用程序主要是要框架JFrame作为容器 ,在JFrame上通过放置JPanel面板来控制图形 界面的布局;n如果应用到浏览器中,则主要使用JApplet来做 容器。JApplet是一个能够嵌入到浏览器中

6、运行 的特殊容器。1112.2.1 Swing组件分类1. Swing容器的层次关系 一般的Swing窗口,实际上包含几个“层次”。1212.2.1 Swing组件分类1. Swing容器的层次关系 一般的Swing窗口,实际上包含几个“层次”,各个层的关系 如教材P202 图12.2所示。n顶层容器。是一个窗口容器对象,该对象包含了Swing窗 口的各个层次,在该对象里面可以加入其它窗口对象。n根窗格。是在创建顶层容器后自动创建的,供Swing顶层 容器在后台使用,是顶层容器中做包含的最内层,通常无 法在这一层上做任何操作与处理。n分层窗格。加入分层窗格中的组件可以设置其图层层次, 且不会被

7、内容窗格中的对象屏蔽。是其它窗格的父级。1312.2.1 Swing组件分类n菜单栏。菜单栏被添加到分层窗格的顶部。是可选的。n内容窗格。是分层窗格中的某一层,是一个JPanel对象, 在窗体中起着工作区的作用。可以放置大部分的可见组件 。n玻璃窗格。主要用来产生绘图效果,以及用来触发窗口程 序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏 的。1412.2.1 Swing组件分类1512.2.1 Swing组件分类2. 框架类JFramen是Java应用程序的顶层容器。nJFrame是java.awt.Frame的扩展版本,是一个 window子类,在使用Swing类库实现用户图形接口,必

8、 须继承该类。nJFrame容器包括窗口标题、窗口外观、窗口边界、调整 窗口大小的图标、关闭和最小化窗口的图标。并且可以直 接在容器上添加组件,如按钮、文本等。1612.2.1 Swing组件分类构造方法:npublic JFrame() throws HeadlessException。创建了一个新的容器窗口,默认该窗口是不可见的。npublic JFrame(String title) throws HeadlessException 创建一个新的容器窗口,通过方法的参数设置窗口标题, 该窗口默认是不可见的。1712.2.1 Swing组件分类该类的常用方法(P203-204)ngetCo

9、ntentPane()该方法返回一个框架对象,使用该框架对象来添加组件,如 增加按钮、菜单、工具栏、列表框等组件。nsetSize(int width ,int hight)设置窗口尺寸、窗口大小以像素为单位计算。ngetJMenuBar() 返回此窗体上设置的菜单栏。nsetJMenuBar(JMenuBar menubar) 设置此窗体的菜单栏。 nsetIconImage(Image image) 设置要作为此窗口图标显示的图像。18例App12_1 辅助类组件类19例App12_1为什么在该实例中被没有显示背景 色? JFrame默认采用了FlowLayout布局 管理器,你的组件在该

10、布局管 理器中被塞满整个frame,挡住 了背景。就是说,实际上 JFrame还是有背景的一般用 JFrame的时候要初始化一个 JPanel,把组件放在JPanel里 ,然后把JPanel放到JFrame里 ,这样可以较好的控制组建位 置等其他的东西。在这种方式 下直接给JPanel设置 setBackground就可以一直看到 背景了命令提示符环境20例App12_1_121例App12_1_1例App12_1_22212.2.1 Swing组件分类3. 面板类JPaneln面板是一种没有标题栏、没有边框的中间层容器,在该容 器上可以放置其他组件如单选按钮、列表框等。还可以包 含其他容器,

11、如一个新的JPanel对象,从而方便地实现容 器的嵌套。n在面板创建后是无法单独显示的。面板不是顶层容器,必 须放到其他容器内,也可以放入另一个面板内。必须放在 JFrame或Applet这样的顶层窗口中才可以显示。n一个界面只可以有一个JFrame窗体组件,但可以有多个 JPanel面板组件2312.2.1 Swing组件分类3. 面板类JPanel 该类的构造函数:nJPanel():创建一个面板,并且该面板组件的布局管理器 为FlowLayout()。nJPanel(LayoutManager layout):创建一个面板,且 该面板设置了指定的布局管理器。布局管理器管理在容器 上放置的

12、组件,具体的内容会在12.4节详细介绍。2412.2.1 Swing组件分类3. 面板类JPanel 常用方法:nJPanel默认的布局管理器是FlowLayout,可以使用 setLayout()方法改变其默认布局。n也可以采用包含它的容器不同的布局管理器。25例App12_2在框架中加入面板26例App12_2在框架中加入面板27例App12_2在框架中加入面板2812.2.1 Swing组件分类4. 组件类n又称控制组件(控件),它里面不能包含其他组件。n作用:完成与用户的交互,包括接收用户的命令、接收用 户输入的文本或用户的选择、向用户显示文本或图形。n常用控件:命令类、选择类、文字处

13、理类等。2912.2.1 Swing组件分类5.图形界面设计的步骤 n 创建组件(Component):创建组成界面的各种元素,如 按钮、文本框等。 n 指定布局(Layout):根据具体需要排列界面上各元素的 位置关系。 n 响应事件(Event):定义图形用户界面的事件和各界面元 素对不同事件的响应,从而实现图形用户界面与用户的交 互功能。3012.2.2 颜色类、字体类、图像图标类1.颜色类Colorn属于java.awtn每种颜色均看作是由红(R)、绿(G)、蓝(B)三色组成。n构造方法: Color (int r, int g, int b)n颜色常量值 Color.black ,

14、Color.blue , Color.gray , Color. red Color.white n例如 Color c = new Color(int rgb) 参数取值0255 ,越大则表明这种 颜色的成分越重。3112.2.2 颜色类、字体类、图像图标类2.字体类Fontn用来规范组件所用的字体样式、大小与字形等。n构造方法: Font (String font_name, int style, int size)字体名称字形样式:PLAIN 、BOLD、ITALIC字号大小32Font类的成员方法public string getName():获得字体的名称public int get

15、Style():获得字体的样式public int getSize():获得字体的大小public boolean isPlain():若字体是正常型,则返回truepublic boolean isBold():若字体是粗体,则返回truepublic boolean isItalic() :若字体是斜体,则返回true12.2.2 颜色类、字体类、图像图标类3312.2.2 颜色类、字体类、图像图标类3.图标图像类ImageIconnJava语言使用javax.swing.ImageIcon类表示图标。表 12.12给出了ImageIcon类的常用构造方法,表12.13给 出了ImageI

16、con类的常用方法。34Java中Image类与ImageIcon类的区别 Image类一般尺寸过大,不适合作ImageIcon类。ImageIcon imageIcon = new ImageIcon(“duke.gif”); / Icon由图片文件形成Image image = imageIcon.getImage(); / 但这个图片太大不适合做Icon/ 为把它缩小点,先要取出这个Icon的image ,然后缩放到合适的大小Image smallImage = image.getScaledInstance(30,20,Image.SCALE_FAST);/ 再由修改后的Image来生成合适的IconImageIcon smallIcon = new ImageIcon(smallImage);/ 最后设置它为按钮的图片JButton iconButton = new JButton(smallIcon);35Java中Image类与ImageIcon类的区别 而由ImageIcon类到Image类,可以通过:I

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

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