JavaSwing图形界面开发(第6章).ppt_第1页
JavaSwing图形界面开发(第6章).ppt_第2页
JavaSwing图形界面开发(第6章).ppt_第3页
JavaSwing图形界面开发(第6章).ppt_第4页
JavaSwing图形界面开发(第6章).ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章 如何使用面板组件 1 面板-指一个“容器”,即中间容器,可将基本组件放在其 中,以组成满足应用的用户界面。(如:ContentPane) 常用面板:JPanel、JScrollPane、JSplitPane、TabbedPane 、 JInternalFrame、JLayeredPane等。 -通俗说,面板容器。 -准确说,面板中间容器。 在这些容器中可以放置组件! 2 JScrollPane-滚动条面板组件 (实现“单个子组件”的水平或垂直滚动的容器类。当组 件“内容”大于“显示区域”时,自动产生滚动轴) JSplitPane-分割面板组件 (用以将窗口分割成两部分,分割后每个窗口只能放一个 控件。若添加多个控件,需在上面放一个JPanel面板) JTabbedPane-选项卡(卡片盒)面板组件 (通过“单击”具有给定标题或图标的“选项卡”在一组 组件之间进行切换) 3 JInternalFrame-内部框架组件 (与JFrame类似,可最大化、最小化、关闭窗口、加 入菜单等功能。唯一不同的是JInternalFrame是 lightweight component ,不能单独出现,必须依附 于顶层容器) JLayeredPane-分层面板组件 (为JFC、Swing容器添加“深度”,允许组件在需要时相 互 重叠) 4 6.1 如何使用JPanel JPanel是实际开发中“使用频率”最高的面板之一,有 时会与顶层窗口相联系;有时还会将其放置到与顶层窗口联 系的面板中,即面板中嵌入面板。 如:布局管理器中,先将一个面板放到顶层窗口中,配 置好布局管理器后,再在这个布局管理器中放置几个面板。 (布局管理器中内嵌布局管理器) 5 表6.1 JPanel容器类的构造器 双缓冲-通过使用双缓冲技术,改进频繁变化组件的显示效果。 流布局-指具有FlowLayout特色的布局,由此可知默认的JPanel的 布局管理器是FlowLayout布局管理器。 6 JPanel程序示例1: 参见程序代码: 7 程序运行结果: 图6.1 JPanel的使用 ? contentPane的布局 8 上述程序中建立了6个面板容器类:contentPane、p1、 p2、p3、p4、p5。 其中“ContentPane”是与顶层窗口关联的内容面板,其 余5个面板容器则是与BorderLayout中每个部分关联的面板。 程序代码使用“不带参数”的JPanel容器类构造器。 下面使用“带参数”的JPanel容器类构造器来重新编写 上例的程序代码。 程序示例1说明: 9 JPanel程序示例2: 参见程序代码: 10 程序运行结果: 说明:此例程序,只是将“布局管理器的设置”放到“构造器”中,所 以运 行结果相同。 ? contentPane的布局 JPanel contentPane=new JPanel(new BorderLayout(); JPanel p1=new JPanel(new FlowLayout(); JPanel p2=new JPanel(new FlowLayout(); JPanel p3=new JPanel(new FlowLayout(); JPanel p4=new JPanel(new FlowLayout(); JPanel p5=new JPanel(new FlowLayout(); 11 6.2 如何使用JScrollPane JScrollPane类是一个“带滚动条的容器类”,可用来 显示文本、表格等内容。 当“显示内容”超过JScrollPane面板的大小时,系统 会自动添加滚动条。 使用JScrollPane面板,同样需要依靠构造器。 12 表6.2 JScrollPane常用构造器 13 表6.3 滚动策略变量 滚动策略-决定什么时候出现滚动条 int vsbPolicy int hsbPolicy 14 JScrollPane程序示例1: 15 程序运行结果: 图6.2 如何使用JScrollPane 16 JScrollPane程序示例2: 上述程序中,当JScrollPane面板无法完全显示时才会出现滚动条。 若希望任何时候都显示滚动条,可修改为如下形式: 17 程序运行结果: 说明:JScrollPane与JPanel原理上相同。 实际开发中,一般均使用JScrollPane面板显示“大量的文本文件 ” ,如同“浏览器”一样。 图6.3 垂直和水平滚动条的显示 18 6.3 如何使用JSplitPane主要用于“分隔组件 ” 表6.4 JSplitPane面板常用构造器 重绘方式-当“分隔条”改变位置时,组件是否会重绘。 指定方向-指分隔的方向是“水平”分隔还是“垂直”分 隔。 19 表6.5 JSplitPane容器类的常用方法 20 JSplitPane程序示例1: 21 程序运行结果: 图6.4 如何使用JSplitPane面板 22 JSplitPane程序示例2: 23 程序运行结果: 图6.5 JSplitPane面板的综合运用 说明:实际开发中,JSplitPane面板的使用频率非常高,经常用来在一个 窗口中显示出两种不同风格的格式。 此例是在两边分别添加按钮组件,其实还可以添加其它组件。 (如文本框、标签等) 24 6.4 如何使用JTabbedPane 用以创建“选项卡容器 ” 表6.6 JTabbedPane面板的构造器 25 表6.7 JTabbedPane面板类的常用方法 26 JTabbedPane程序示例1: 27 程序运行结果: 图6.6 如何使用JTabbedPane 设置某选项卡的“背景颜色”: tp.setBackgroundAt(0,Color.blue); 设置某选项卡的“前景颜色(字)”: tp.setForegroundAt(0,Color.white); 28 JTabbedPane.WRAP_TAB_LAYOUT布局 JTabbedPane.SCROLL_TAB_LAYOUT布局 29 JTabbedPane程序示例2: 在每个选项卡里添加一些组件 30 程序运行结果: 图6.7 带布局管理器的JTabbedPane面板 31 6.5 如何使用JInternalFrame JInternalFrame的使用与JFrame几乎一样,如最大化、 最小化、关闭窗口或加入菜单等。 区别:JInternalFrame是中间容器类,即JInternalFrame 不能单独出现,必须依附在顶层组件中。 一般将JInternalFrame加入Desktop Pane,方便管理。 32 Desktop Pane是一种特殊的Layered Pane,用来建立虚 拟桌面(Virtual Desktop),可显示并管理众多Internal Frame之间的层次关系。 java.lang.Object -java.awt.Component -java.awt.Container -javax.swing.JComponent -javax.swing.JLayeredPane -javax.swing.JDesktop JDesktop Pane的类层次结构 说明:一种桌面中的桌面,相当于 JFrame,可用作虚拟桌面。 33 表6.8 JInternalFrame构造器 34 JInternalFrame程序示例: 35 程序运行结果: 图6.8 如何使用JInternalFrame面板 考虑:是否可将“contentPane”去掉,将“dp” 直接添加 到顶 层“jf”中? 说明:JInternalFrame面板的用法,与JPanel面板几乎相同。 唯一不同的是可以关闭、最大化、最小化面板。 36 6.6 如何使用JLayeredPane 主要为JFC、Swing容器添加深度,允许组件在必要时 相互重叠。(层次) JLayeredPane面板将“面板深度范围”分成多个不同 的层,将组件放入不同的层内,可保证组件能正确的重叠 ,而不必为具体的深度编号。 37 JLayeredPane程序示例: 38 程序运行结果: 图6.9 如何使用JLayeredPane面板图6.10 单击后的JLayeredPane面板 39 6.7 如何使用JRootPane 面板有时也称作窗格。(如:根面板根窗格) Swing中JFrame由它的窗体本身加上其上的JRootPane、 JLayeredPane、containPane、glassPane、JMenuBar等五个 部分组成。 其中:根面板在JRootPane类中实现; 层面板在JLayeredPane类中实现。 它们都是JComponent的子类,不过containPane和 glassPane没有专门对应的类。 40 JRootPane是在JFrame窗体创建时就默认添加进来的, -是所有其它面板的载体或父级; -它覆盖JFrame中除标题栏和边条之外的整个表面; -JRootPane默认是不可见的,负责管理其它面板。 如:使其它面板覆盖整个JFrame窗体等。 41 JFrame 框架窗体中各面板的层次结构 42 可以直接从顶层容器中获得一个JRootPane对象来直接使用,而不需 要新建一个对象。(也可新建) GlassPane在默认状态下是隐藏的,如果设置它为true(即可见),其 就像玻璃一样覆盖在整个JRootPane对象上面。 LayeredPane可分为很多层。 通常所有组件都添加到ContentPane上。 JMenuBar可以存在也可以不存在。 不能在JRootPane上添加任何组件,因为它只是一个虚拟容器。 若要在顶层添加组件,就必须在LayeredPane或是在LayeredPane 内的ContentPane上添加。 JRootPane层次结构图说明: 43 JRootPane程序示例: 44 程序运行结果: 图6.12 JRootPane的用法 45 上述程序段将“菜单条”添加到JRootPane面板中。 除菜单条外,还可以添加一个内容面板,并在其中添加组件,这样即 可实现一个完整美观的用户界面。 所以,实际上JRootPane只是一个容器,是一个可以装载其它容器类 的容器类,可以装载菜单、内容面板等。 JRootPane所使用的自定义JLayoutManager可确保如下内容: JGlassPane填充了JRootPane的整个可查看区域

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论