Swing学习笔记4---窗口与面板

Swing的容器结构与JLayeredPane的使用:

    Swing的容器包括JApplet、JFrame、JDialog、JWindow、JInternalFrame,JInternalFrame是lightweight容器,其他都是heavyweight的。当我们要加入某个组件到Swing的容器中时,并不是直接加入到RootPane中,而是加到其下的某一成员(LayeredPane或ContentPane)中。

    在RootPane的结构中,ContentPane与MenuBar只是LayeredPane的其中一层,我们称此层为Frame-Content Layer。可通过Frame_Content_Layer常数得到Frame-Content Layer在LayeredPane的层次。

    如何得知LayeredPane中层次关系呢?Z-order。

    Z-order本身具有两个整数之,一个是代表层的深度,另一个代表同层的相关位置。当Z-order的Layer树脂越小时,表示其位置就越在低层,反之则在越上层。在JLayeredPane类中,共定义了6个Z-order的Layer常数供用户参考:

    DEFAULT_LAYER:Layer数值是0,以整数对象Integer(0)来表示。一般我们加入的组件若没有标记层次,默认值就是把组件放在此层中。

    PALETTE_LAYER:Layer数值是100,位于DefaultLayer之上,

一般用于放置工具栏。

    MODAL_LAYER:200,PaletteLayer之上,放置对话框。

    POPUP_LAYER:300,ModalLayer之上,用于快速菜单与工具栏提示中。

    DRAG_LYAYER:400,PopupLayer之上,用于拖拽组件。

    FRAME_CONTENT_LAYER:-30000。一般上是最底层的Layer,用来表示ContentPane与MenuBar的位置,大部分情况下不会更改次数值。

Z-order的另一个数值Position:与Layer正好相反,同层的组件,若Position数值越小者在越上层,Position数值越大者则在越下层。Position数值从-1~n-1,n是指同层中组件个数,-1代表最底层,0代表最上层。

    一般程序语言都会提供良好的Z-order自动管理机制,不用手动处理。用户只需将所需组件直接加入到ContentPane即可。

JInternalFrame的使用:

    与JFrame几乎一样,唯一不同是JInternalFrame使lightweight的,因此JInternalFrame能够利用Java的LookandFeel功能完全不同于原有操作系统所提供的外形,也比JFrame更有弹性。

    一般将JInternalFrame加入到DesktopPane管理,DesktopPane是一种特殊的LayeredPane,用来建立虚拟桌面(VirtualDesktop),它可以显示并管理众多JInternalFrame之间的层次关系。

JPanel的使用:

    Panel也是Java时常用到的容器之一,Panel除了可以让组件加入外,还可以有效地利用Panel使面板管理更容易。Swing的JPanel支持double buffering的功能,使得JPanel在处理动画上更加流畅。

JSplitPane的使用:

    SplitPane一次可将两个组件同时显示在两个显示区中,若想要将组件同时显示在多个区域内,必须同时使用多个SplitPane,两个常数用来设置是水平分割还是垂直分割:HORIZONTAL_SPLIT与VERTICAL_SPLIT。

JTabbedPane的使用:

    JTabbedPane就如同放置文件的文件夹一般,当用户想要看那一份文件时,只要循着标签上的说明文字来找寻,找到之后将它显示出来即可。

    JTabbedPane的时间处理以ChangeEvent为主,每当选定标签时都回出发相应操作。

JScrollPane的使用:

    ScroolPane可以用来滚动窗口,事实上是由JViewPort与JScrollBar所组成。JViewPort主要负责显示内容区域大小,形状为一个平面矩形;而JScrollBar则产生窗口滚动轴。

    JScrollPane可利用下面参数来设置滚动轴的出现时机,这些参数是定义在ScrollPaneConstants 接口中的:

    HORIZONTAL_SCROLLBAR_ALWAYS:显示水平滚动轴

    HORIZONTAL_SCROLLBAR_NEEDED:内容水平区域大于显示区域时显示滚动轴

    HORIZONTAL_SCROLLBAR_NEVER:不显示滚动轴

    VERTICAL_SCROLLBAR_ALWAYS:显示垂直滚动轴

    VERTICAL_SCROLLBAR_AS_NEEDED:内容垂直区域大于显示区域时显示滚动轴

    VERTICAL_SCROLLBAR_NEVER:不显示滚动轴

JScrollBar的使用:

    若想对滚动轴作更细的设置,如在拖拽一次滚动多少区域时,就必须了解JScrollBar提供的功能了。4个参数:

    value:JScrollBar一开始的起始位置,0表示最顶端。

    extent:延伸区,限制滚动轴可以滚动的范围。

    minimum:最小刻度值。

    maximum:最大刻度值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值